【发布时间】:2014-08-17 13:07:24
【问题描述】:
我的模型中有一个常规整数(不可为空):
[Required]
[Range(0, Int32.MaxValue - 1)]
public int PersonId
{
get;
set;
}
在我的WebApi 操作中,我接受具有该属性的对象。
public IHttpActionResult Create([FromBody] Person person)
{
if (!ModelState.IsValid)
{
return BadRequest("Some error message.");
}
//Do some stuff with person...
}
现在,虽然PersonId 上有一个Required 属性,但当一个人发布到此操作时,ModelState.IsValid 属性是true。
我猜这是因为Person是使用默认值创建的,即0,如果传入的JSON/查询字符串请求中没有PersonId字段,我想抛出错误。
我可以将 PersonId 设置为 Nullable,但这没有意义。
是否有任何简单的方法来验证字段是否存在且整数大于 0 ? (没有针对该简单要求的自定义验证器)
【问题讨论】:
标签: asp.net asp.net-web-api2 model-validation