当我调用Get方法时,我正在使用MVC3并遇到问题。
当我在其他View中使用razor调用此代码时效果很好。它使用正确的当前值发送关键字,位置参数。
查看
@using (Html.BeginForm("ListSearch", "Job",FormMethod.Get,null))
{
<div id="searchBoxes">
<div id="keywordsSearchBox" >
<input id="keywords_search_small" type="text" tabindex="2" title="@Resources.What" name="keyword">
<div class="searchExplain_small">@Resources.KeywordSearchDesc</div>
</div>
<div id="locationSearchBox">
<input id="location_search_small" type="text" tabindex="3" title="@Resources.Where" name="location" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">
<div class="searchExplain_small">@Resources.LocationSearchDesc</div>
</div>
<div id="searchButtonBox_small">
<input id="btnSearch" type="submit" value="@Resources.Search" role="textbox" aria-autocomplete="list" aria-haspopup="true"/>
</div>
</div>
}
控制器
public ViewResult ListSearch(string keyword, string location,int page
=1) ....
但是,当我从同一视图调用相同的Get方法时,MVC不会更新关键字,位置参数。相反,它发送的是以前的关键字,位置参数。
我在home和listSearch视图中使用相同的剃刀代码。
示例网址
Home Page => Call GET Method ListSearch (keyword=manager, location=Richmond)
http://localhost:4838/Home/Index =>
http://localhost:4838/Job/ListSearch?keyword=manager&location=Richmond
List Search Page => Call GET Method ListSearch (keyword=lawyer, location=Miami)
http://localhost:4838/Job/ListSearch?keyword=manager&location=Richmond =>
http://localhost:4838/Job/ListSearch?keyword=manager&location=Richmond
参数不会改变
我知道如何解决它?
答案 0 :(得分:0)
最后,我解决了它。也许,这不是最好的方法,但它确实有效。
我根据输入文本字段引用新参数并获取value属性。
@using (Html.BeginForm(Resources.Route_ListSearch, Resources.Route_JobOffer,
new { keyword = System.Xml.Linq.XElement.Parse(Html.TextBox("keyword").ToHtmlString()).Value, location = System.Xml.Linq.XElement.Parse(Html.TextBox("location").ToHtmlString()).Value },
FormMethod.Get, null))