ASP.NET MVC需要控制器方法中的参数

时间:2017-12-12 15:29:02

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

我想知道是否可能有类似的东西:

    [HttpGet]
    public JsonResult AddTextFile(string path)
    {
        if(string.IsNullOrEmpty(path))
        { 
            // return error 
        }
    }

但是在我的控制器方法中可能有很多参数的情况下,我不想对每一个使用string.IsNullOrEmpty()。我知道我可以使用带有[Required]字段指示符的视图模型,这样我就可以使用ModelState,但因为这些都是API端点,所以我需要通过get参数获取信息。

是否有一种要求控制器方法参数的优雅方式,因此如果未设置任何控制器方法参数,它将返回一般响应消息?

1 个答案:

答案 0 :(得分:1)

使用复杂对象作为参数:

[HttpGet]
public JsonResult AddTextFile(MyObject obj) {
    if(!ModelState.IsValid) { 
        // return error 
    }
}

public class MyObject {
    [Required]
    public string Path { get; set; }
}

MyObject的属性将取自查询参数,例如:/ addtextfile?path = blah

模型验证将适用。