Html.TextBoxコントロールを使用して、ページに検索ボックスを表示しています。ASP.NET MVC - Html.TextBox - 値がViewDataディクショナリで設定されていません
<%= Html.TextBox("query", ViewData["query"], new { style = "width: 90%;" })%>
アクションメソッドは、パラメータとして「クエリ」を取り、そして私は、渡された文字列をクリーンアップするために、この値を編集します。それはHtml.TextBoxになったとき、しかし
public ActionResult SearchQuery(string query) {
ViewData["query"] = StringFunctions.ProperCasing(query.Replace("_", " "));
を元のクエリ値(この場合はアンダースコア)が保持されます。私が編集した値はViewDataをフィールドにあることを確認できるので、例えば、場合:
query == "data_entry"
そして、後には、それが到達したときに、アクションメソッド
ViewData["query"] == "data entry"
が、値に渡されますHtml.TextBoxのビューはまだ "data_entry"です。アクションメソッドパラメータ "query"と検索ボックスフォームパラメータ "query"の間に衝突があるようです。誰がここで何が起こっているのか、あるいは値を渡す別の方法があるのか知っていますか?
この操作方法は、検索ボックスのデータを送信した結果の操作とは異なります。