0

ASP.NET MVCビュー(これはTwitter Bootstrap検索ボックスです)に次のマークアップがあります。

<form action="@Url.Action("Results", "Search")" method="post">
    <input type="text" class="search-query" id="SearchTerm" name="SearchTerm" />
</form>

このコードは期待どおりに機能しますが、ここで投稿を使用すると問題が発生します。

このマークアップを変更して、代わりに検索クエリをURL引数として渡すにはどうすればよいですか?既存のマークアップを維持してからコントローラーからリダイレクトするという点で、これにどのようにアプローチすればよいのかよくわかりません。それよりももっと効率的な方法があるに違いないと思います。

4

1 に答える 1

1

method="post"に変更してmethod="get"、目的の結果を得ることができるはずです。get メソッドを設定したフォームは、デフォルトの動作でフォーム内のフィールドをクエリ文字列にプッシュします。

回避策として、デフォルトの動作が適切でない場合は、フォームの送信イベントをキャッチして、次のことを行うことができます。

window.location = form.action + "?SearchTerm=" + document.getElementById("SearchTerm").value

フォームがフォーム要素への参照であるようなものです。get リクエストである javascript を使用して、リンクとリダイレクトを作成できます。

于 2012-06-01T19:24:37.897 に答える