在网址中没有查询的Gridmvc过滤

时间:2016-07-15 14:06:00

标签: asp.net-mvc post http-post

我正在使用GridMvc并且我正在过滤数据。我想在网址中隐藏过滤查询,例如http://www.mypage.com/Overview?Name=yyy 我的表格定义为:

<form class="form-inline" method="POST"  action="@Url.Action("Filter", Request.QueryString)">
    <div class="form-group>
        @Html.LabelFor(c => c.Name)
        @Html.TextBoxFor(c => c.Name, new { placeholder = "Filter", @class = "form-control" })

        <button type="submit" class="btn btn-default"><i class="glyphicon glyphicon-search"></i> Search</button>
    </div>
</form>

行动

[HttpPost]
public ActionResult Filter(FilterModel model)

但我总是看到查询。可以隐藏查询字符串吗?

1 个答案:

答案 0 :(得分:1)

如果您将所有数据放入隐藏字段而不是Request.QueryString,则可以隐藏查询。

我的意思是,如果您的Request.QueryString看起来像param1=test1&param2=test2,那么您应该像这样查看:

<form class="form-inline" method="POST"  action="@Url.Action("Filter")">
    <input type="hidden" name="param1" value="test1" />
    <input type="hidden" name="param2" value="test2" />
    <div class="form-group>
        @Html.LabelFor(c => c.Name)
        @Html.TextBoxFor(c => c.Name, new { placeholder = "Filter", @class = "form-control" })

        <button type="submit" class="btn btn-default"><i class="glyphicon glyphicon-search"></i> Search</button>
    </div>
</form>

MVC绑定将根据此name hidden的{​​{1}}属性绑定 POST 上的所有隐藏值。

您应该只填写输入值(将test1和test2替换为input中的值)