给定带有特殊字符键的查询字符串时,控制器操作中的MVC模型绑定

时间:2014-05-22 10:42:45

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

我正在使用Grid的第三方库,它使用固定的查询字符串参数,如下所示。

/Home/GetData/?$skip=0&$top=10

这些参数的键中有$,我想知道是否还有一种方法可以让MVC模型绑定对这些参数起作用。

即。

将它们应用于此操作(由于参数名称中的$,将无法编译。

public ActionResult GetData(int $skip, int $top)
{
...
return View();
}

1 个答案:

答案 0 :(得分:1)

感谢Andrei指出我正确的方向。

以下解决方案都可以解决问题。

通过前缀别名模型绑定

public ActionResult GetData([Bind(Prefix = "$top")]int top = 0, [Bind(Prefix = "$skip")]int skip = 0)
{
    return View();
}

通过Request对象获取Querystring值

public ActionResult GetData()
{
    var topParam = Request.QueryString["$top"];
    var skipParam = Request.QueryString["$skip"];

    var top = 0;
    int.TryParse(topParam, out top);

    var skip = 0;
    int.TryParse(skipParam, out skip);

    return View();
}