web-dev-qa-db-fra.com

Comment appeler le contrôleur en cliquant sur le bouton dans asp.net MVC 4

S'il vous plaît, je travaille sur le site Web de MVC, j'ai une page de recherche et un autre formulaire de recherche sur la page d'index. Je souhaite appeler le même contrôleur de page de recherche lorsque je clique sur le bouton de recherche de la page d'index. Voici comment mon bouton se trouve sur la page d’index.

    <span class="input-group-btn">
      <button class="btn btn-info" type="button" id="addressSearch"   
          onclick="location.href='<%: @Url.Action("List", "Search") %>'">
     Search</button></span>

La liste est ma recherche Action à partir de la page de recherche et Recherche est le nom du contrôleur. Lorsque je clique sur le bouton ci-dessus, il renvoie l'URL sous la forme.

http: // localhost: 52050 / <%:% 20/Search/List% 20%>

Affichage d'une mauvaise demande. Je le soupçonne de mon routage, je ne suis pas sûr de savoir comment résoudre cela. S'il vous plaît, toute aide serait appréciée.

Ci-dessous est comment mon routage est

 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

Vous mélangez la syntaxe rasoir et aspx, si votre moteur de vue est rasoir procédez comme suit:

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

Essaye ça:

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

dans votre code devrait être,

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