我正在尝试将 Web API 中基于属性的路由与模型验证结合起来。我根本无法让它按照我的预期工作。
class MyRequestModel
{
[DefaultValue("DefaultView")]
public string viewName { get; set; }
[Required]
public string something { get; set; }
}
[HttpGet]
[Route("myroute/{id:minlength(2)}")]
public IHttpActionResult Test(string id, [FromUri]MyRequestModel request)
{
if (!ModelState.IsValid) { return BadRequest(ModelState); }
// process here...
return Json( /* result */ );
}
Run Code Online (Sandbox Code Playgroud)
虽然something验证正确,但我有一些问题:
something参数值时,该值通过 OK,但viewName通过 as null,但模型状态有效 - 我期望默认值,因为没有指定任何内容viewName参数 ( ?something=x&viewName=) 时,它会通过 as "DefaultView",并且模型状态有效 - 我希望它作为指定的空白字符串[FromUri],request则始终如一 …