私は Asp.NET WebApi を使用していますが、私を混乱させることの 1 つは、要求が完了したときのバインディングです。
私はこのViewModelを持っています:
[DataContract(Name="Store")]
public class StoreDm
{
[DataMember(IsRequired = true)]
[MinLength(3)]
public string Name { get; set; }
[DataMember(IsRequired = true)]
public double Latitude { get; set; }
[DataMember(IsRequired = true)]
public double Longitude { get; set; }
}
public HttpResponseMessage GetStoreNames(StoreDm vm)
{
if (ModelState.IsValid)
{
}
}
RestClient c = new RestClient("http://localhost:3333/api/store");
RestRequest r = new RestRequest("/GetStoreNames", Method.GET);
r.AddParameter("Name", autoComplete);
r.AddParameter("Latitude", "4");
r.AddParameter("Longitude", "-7");
var d = c.BuildUri(r);
c.ExecuteAsync(r, response2 =>
{
var content = response2.Content;
});
私の StoreDm は Null です。
私はこれをそれほど多くのレベルで理解していません。最初に、ModelState が「null」ViewModel が有効であると考える何らかの理由で、すべてのプロパティに IsRequired をセットアップします。
第二に、それがなぜなのかわかりませんnull
。[FromUri]
バインドするには、追加する必要があります。Post
これがであり、同じ restClient コードを持っていて、誰かがフィドラー ボディ リクエストを使用している場合はどうなりますか。
強制的に配置する場合[FromUri]
、フィドラー本体のリクエストは機能しないと思います。
両方のリクエストが通過して適切にバインドされるようにするにはどうすればよいですか?