我想对 ASP.NET 5 应用程序中的所有控制器使用全局模型验证过滤器。
但是我遇到了一个问题,即默认绑定器不会从 URI 填充模型值(但对于有体的 POST 操作来说效果很好)。例如,我有带有动作的控制器:
public class TestController : ApiController
{
[HttpGet, Route("test/{id}"/return)]
public int TestAction([FromUri] TestModel model)
{
return model.Id;
}
public class TestModel
{
[Required]
public int? Id { get; set; }
}
}
通过 URI 请求此控制器,例如,localhost:12345/test/10/return
返回 'null' 响应。对于另一个复杂模型也是如此,访问一些 [Required] 标记的字段会引发 NRE,例如 binder 会忽略路由中的 {id} 表达式。
任何可以关闭此行为的想法?