我在Html.TextBox控件的頁面上有一個搜索框(實際上是在局部視圖中,但不確定是否相關)。ASP.NET MVC - Html.TextBox - 未通過ViewData詞典設置的值
<%= Html.TextBox("query", ViewData["query"], new { style = "width: 90%;" })%>
的操作方法採用「查詢」作爲參數,我編輯該值來清理傳入的字符串:
public ActionResult SearchQuery(string query) {
ViewData["query"] = StringFunctions.ProperCasing(query.Replace("_", " "));
然而,當它到達Html.TextBox原始查詢值(在本例中爲下劃線)將被保留。我可以看到,所編輯的值是在ViewData的領域,因此,例如,如果:
query == "data_entry"
然後,在被傳遞到操作方法
ViewData["query"] == "data entry"
但該值,當它到達查看,在Html.TextBox中仍然是「data_entry」。似乎行動方法參數「查詢」與搜索框形式參數「查詢」之間存在衝突。任何人都知道這裏發生了什麼,或者如果有另一種方式來傳遞價值?
此操作方法與發佈搜索框數據所產生的操作是分開的。