我在web api操作中获取参数使用[FromUri]
,例如:
public TestController
{
public ActionResult TestMethod([FromUri] int testParamFromUri)
{
//here is my validation
if(testParamFromUri < 1 || testParamFromUri > 50)
{
throw new TestException();
}
//other code
}
}
我需要验证输入参数的使用属性,如果参数无效,则抛出新的异常。 我尝试使用Range属性,如下所示:
public ActionResult TestMethod([FromUri] [Range(1,50,"Error message")] int testParamFromUri)
但这种方式对我不起作用。 请告诉我错误的地方或告诉我应该如何处理验证输入参数。
P.S。我需要获取输入参数使用[FromUri]
属性并使用其他属性验证此参数。
答案 0 :(得分:1)
您可以使用Input
属性创建testParamFromUri
模型,并使用Range
属性对其进行验证:
public class TestController : ApiController
{
public IHttpActionResult TestMethod([FromUri]Input input)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
//other code
return Ok();
}
}
public class Input
{
[Range(1, 50, ErrorMessage = "Error Message")]
public int testParamFromUri { get; set; }
}