我正在使用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)
但我总是看到查询。可以隐藏查询字符串吗?
答案 0 :(得分:1)
如果您将所有数据放入隐藏字段而不是Request.QueryString
,则可以隐藏查询。
我的意思是,如果您的Request.QueryString
看起来像param1=test1¶m2=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
中的值)