@using (Ajax.BeginForm("Search", "Filter", new { Area = "Music" }, new AjaxOptions { HttpMethod = "GET", InsertionMode = InsertionMode.Replace, UpdateTargetId = "body-wrapper", OnSuccess = "updateHistory" }, new { @id = "search" }))
{
<div>
<i class="fa fa-search"></i>
<input id="searchString" name="searchString" type="search" placeholder="Search">
</div>
}
エリア登録が表示されません検索入力に入力してURLを送信しますs:の代わりに/Music/Filter/Search
です。ASP.NET MVCクエリ文字列は、URLに
ユーザーがURLに入力したクエリを表示するにはどうすればよいですか? searchStringは正しくバインドされていますが、URLには表示されません。ここで
私はエリア登録にしようとしているものだ、しかし、それはいくつかの理由で、この1にマッピングされていない:私は検索用語を入力するときここ
context.MapRoute(
"Music_Search",
"Music/Filter/Search/{searchString}",
defaults: new { controller = "Filter", action = "Search" }
);
はRouteDebuggerに応じて生成されたURLは 'メイド ':
生成されたURL:/ユーザー/フィルター/検索するsearchString =メイド& X-要求-付=のXMLHttpRequest & _ = 1462458566832
編集:? RouteDebuggerイメージRouteDataにクエリ文字列を追加していないようですので、それが正しいルートの設定を呼び出すことはありません。
これはどのバージョンのMVCですか? – nurdyguy
@nurdyguy 5.2.3.0 –
あなたは5歳以上ですので、可能であれば、ルート設定の代わりに属性ルーティングを使用することをお勧めします。これは完全な副作用であり、おそらくこの問題は解決しないでしょうが、あなたは長期的にはるかに良いでしょう。 https://blogs.msdn.microsoft.com/webdev/2013/10/17/attribute-routing-in-asp-net-mvc-5/ – nurdyguy