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

Get parameter use FromUri and validate this parameter

我在我的网站 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] 属性获取输入参数并使用其他属性验证此参数。

您可以使用 testParamFromUri 属性 创建一个 Input 模型并使用 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; }
}