GET
次の方法を使用できます。
<form class="search" action="@Url.Action("Index", "Search")" method="get">
<div>
<input name="q" value="" type="search" />
<input type="image" name="btn" value="search" src="@Url.Content("~/image1.jpg")" />
</div>
</form>
Html.BeginForm
この目的のために設計されたヘルパーを使用して、これとまったく同じマークアップを生成することもできます。
@using (Html.BeginForm("Index", "Search", FormMethod.Get, new { @class = "search" }))
{
<div>
<input name="q" value="" type="search" />
<input type="image" name="btn" value="search" src="@Url.Content("~/image1.jpg")" />
</div>
}
GET メソッドを使用すると、フォームの送信時にすべての入力要素の値がクエリ文字列で送信されます。
また、クエリ文字列パラメーターを使用する代わりに、URL のパス部分に検索文字列を追加する場合はfollowing blog post
、Scott Hanselman の をお読みください。彼の結論だけを引用します。
リクエスト パスでクレイジーなものを取得するためのこのすべての努力の後、値をクエリ文字列の一部として保持するだけのほうが簡単で、クリーンで、より柔軟で、より柔軟であることに言及する価値があります (この記事の最初の WAY を覚えていますか?)。安全。