MVCコントローラーを使用すると、キーのプロパティ名を取得します。WebApiコントローラーを使用する場合、キーの名前として「parameterName.property」を取得します。
public class SomeClass
{
[StringLength(12, MinimumLength = 12)]
public string Blah { get; set; }
}
MVCコントローラー内
[HttpPost]
public ActionResult Create(SomeClass collection)
{
// ModelState.Keys.ElementAt(0) == "Blah"
}
WebApiController内(「blah = 1」などのリクエスト本文を渡す)
public HttpResponseMessage Post(SomeClass someClass1)
{
// ModelState.Keys.ElementAt(0) == "someClass1.Blah"
}
したがって、MVCと一致する「Blah」を取得する代わりに、「someClass1.blah」を取得します。なぜこの矛盾があるのですか?足りない設定はありますか?これはRCのバグですか?どちらのプロジェクトも、VS2012RCでゼロから作成されました。