MVC3更新获取方法参数。不在同一个视图中工作

时间:2013-10-28 14:02:27

标签: asp.net-mvc asp.net-mvc-3

当我调用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 

参数不会改变

我知道如何解决它?

1 个答案:

答案 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))