MVC Webサイトで作業しています。検索ページとインデックスページに別の検索フォームがあります。インデックスページから検索ボタンをクリックすると、同じ検索ページコントローラーを呼び出します。以下は、私のボタンがインデックスページにある方法です。
<span class="input-group-btn">
<button class="btn btn-info" type="button" id="addressSearch"
onclick="location.href='<%: @Url.Action("List", "Search") %>'">
Search</button></span>
リストは検索ページからの検索アクションであり、検索はコントローラー名です。上のボタンをクリックすると、フォームのURLが返されます
http:// localhost:52050 / <%:%20/Search/List%20%>
悪いリクエストを表示しています。私はルーティングからそれを疑っています、私はこれをどのようにアーカイブするのかわかりません、助けていただければ幸いです。
以下は私のルーティングの様子です
routes.MapRoute(
name: null,
url: "Page{page}",
defaults: new { Controller = "Search", action = "List" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}
);
ビューエンジンがrazorの場合は、razorとaspx構文を混在させます。
<button class="btn btn-info" type="button" id="addressSearch"
onclick="location.href='@Url.Action("List", "Search")'">
これを試して:
@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute)
あなたのコードでは、
@Html.ActionLink("Search", "List", "Search", new{@class="btn btn-info", @id="addressSearch"})