私は ASP.NET を使用しており、ビューに次のコードがあります。
<% using(Html.BeginForm("Search", "Home", FormMethod.Get)) { %>
<%= Html.TextBox("searchText") %>
<input type="submit" value="Search" />
<% } %>
そして私のコントローラーには次のものがあります:
public ActionResult Search(string searchText)
{
return View("Index");
}
Search-action にブレークポイントがあり、searchText 引数を調べると、texbox にテキストを入力しても常に "" になります。formmethod を POST に変更すると、期待どおりに動作します。
http-GET を使用しているときに「searchText」を読み取るにはどうすればよいですか?
編集:
私は次のルートを持っていました
routes.MapRoute(
"Search", // Route name
"Search/{searchText}", // URL with parameters
new { controller = "Home", action = "Search", searchText ="" } // Parameter defaults
);
searchText(searchValue="") のデフォルト値を削除すると、アクションで正しい値が得られました。なんで?