web-dev-qa-db-ja.com

asp.net MVC 4のボタンクリックからコントローラーを呼び出す方法

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
            }
            );
14
Nuru Salihu

ビューエンジンがrazorの場合は、razoraspx構文を混在させます。

<button class="btn btn-info" type="button" id="addressSearch"   
          onclick="location.href='@Url.Action("List", "Search")'">
30
Ehsan Sajjad

これを試して:

@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute)

あなたのコードでは、

@Html.ActionLink("Search", "List", "Search", new{@class="btn btn-info", @id="addressSearch"})
8
Kinjal Gohil