ASP.NET MVC控制器方法输入参数 - 如何填充?

时间:2014-08-04 16:57:50

标签: asp.net-mvc jqgrid-asp.net

我正在尝试了解ASP.NET MVC JQGrid示例。网格发出AJAX请求以获取其数据:

http://[thesiteurl]/[ControllerName]/GetGridData?_search=false&nd=14&rows=10&page=1&sidx=Id&sord=asc 

控制器方法是:

public ActionResult GetGridData(GridSettings gridSettings)

如何将GET参数转换为GridSettings对象,以及如何使用其他类型更改?

1 个答案:

答案 0 :(得分:2)

ASP.NET MVC框架有一个内置的模型绑定器,可以执行此任务。 (您也可以编写自定义模型绑定器。)最简单的方法是检查传入数据的键/值对,并将其与路由操作方法的方法参数相匹配。

检查请求,看起来您有以下内容:

_search: false
nd: 14
rows: 10
page: 1
sidx: Id
sord: asc

因此,例如,如果Gridsettings对象的定义如下:

class GridSettings
{
    public string _search { get; set; }
    public int nd { get; set; }
    public int rows { get; set; }
    public int page { get; set; }
    public string sidx { get; set; }
    public string sord { get; set; }
}

然后,模型绑定器可以相应地将传入参数映射到模型的属性。

如果要定义具有相同属性的其他类型,则可以使用该类型代替GridSettings。使用该类型,您可以添加更多属性以匹配您要添加的任何客户端提供的值,您可以在模型内部添加更多逻辑等。