我在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”。似乎行动方法参数“查询”与搜索框形式参数“查询”之间存在冲突。任何人都知道这里发生了什么,或者如果有另一种方式来传递价值?
此操作方法与发布搜索框数据所产生的操作是分开的。