2016-07-15 60 views
0

我正在使用GridMvc,我正在過濾數據。我想隱藏篩選查詢的網址類似http://www.mypage.com/Overview?Name=yyy 我的形式被定義爲:Gridmvc過濾沒有在URL中查詢

<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

如果您將所有數據都放在隱藏字段而不是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結合將根據該hiddeninput S的name屬性綁定上POST所有隱藏的值。

你應該只填寫輸入值(從Request.QueryString與你的價值觀取代測試1和測試2)

+0

我'Request.QueryString'看起來像'名稱= JohnDoe'。我不確定是否有可能有''和'。 – user2250152

+0

@ user2250152爲什麼不呢?嘗試一下 –