获取参数使用FromUri并验证此参数

时间:2016-02-18 15:56:38

标签: c# asp.net .net-4.5

我在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]属性并使用其他属性验证此参数。

1 个答案:

答案 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; }
}