2017-11-20 11 views
0

私はナンシーから始めていますが、私はイライラする問題にぶつかってきました。バインディングなしでデシリアライズされたボディを取得する

私は(他のプロパティの中でも)IDを持つモデルを持っています。私のモジュールで

public class MyModel 
{ 
    public string Id { get; set; } 
    // other properties 
} 

は、私は、PUTメソッド

Put["/{id}", true] = async (parameters, token) => 
{ 
    var model = this.Bind<MyModel>(); 
    string id = parameters["id"]; 
    if (model.Id != id) 
     return new Response 
     { 
      ReasonPhrase = $"[error message about IDs not matching]", 
      StatusCode = HttpStatusCode.BadRequest 
     }; 

    await _myModelService.Update(model); 
    return Nancy.Response.NoBody; 
}; 

私が経験してる問題はthis.Bind<MyModel>()コールで、ナンシーはルートでIDと一体的にIDを上書きすることであると定義しました私の "匹敵しない"シナリオをテストすることはできません。たとえば:

PUT /orders/someObjectId 
{ 
    "Id" : "aDifferentObjectId" 
} 

"someObjectId"としてIdMyModelに結合します。私もプロパティをブラックリスト試みた

  • this.Bind<MyModel>(m => m.Id)
  • this.Bind<MyModel>("id")
  • this.Bind<MyModel>("Id")
  • this.Bind<MyModel>("id", "Id")

をしかし、これは、IDプロパティをクリアバインド操作になりモデルでは

体内にあるものを正確に取得するにはどうすればよいですか?

答えて

0

Nevermind。私は間違ったことをしていましたが、今はブラックリストなしで働いています。私は説明がありません。

関連する問題