如果我使用 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中的错误吗?这两个项目都是在 VS2012 RC 中从头开始创建的。