web-dev-qa-db-fra.com

Comment invoquer une méthode d'action MVC à partir d'un href dans une ancre?

J'utilise le balisage comme suit.

@Html.ActionLink(@User.Identity.Name, "LogOut", "Account")

Maintenant, j'ai besoin d'ajouter une étendue à l'intérieur de l'ancre parce que je veux utiliser les glyphes de Bootstrap. En ce qui concerne mes recherches, il n’ya aucun moyen de le spécifier en utilisant l’assistant ci-dessus. Donc, je l'ai redessiné en HTML explicite comme suit.

<a href="~/Account/LogOut">
  <span class="glyphicon glyphicon-log-out"></span>
  <span>@Global.LogOut @User.Identity.Name</span>
</a>

Cela fonctionne mais le lien ne cible pas toujours la même adresse que le premier exemple. C'est parce que j'ai en/ou se/etc. pour la langue en premier. Lors du routage basé sur MVC, le préfixe de langue reste en place mais il est perdu lors de la spécification explicite de l'URL.

Comment puis-je spécifier un appel à la méthode d'action spécifique?

6
Konrad Viltersten

Essayer:

<a href="@Url.Action("LogOut", "Account")">
  <span class="glyphicon glyphicon-log-out"></span>
  <span>@Global.LogOut @User.Identity.Name</span>
</a>
9
fordareh

Sur l'affichage, vous pouvez appeler l'action MVC avec des paramètres tels que:

<a href="@Url.Action("FilterCustomerGrid", "Customer", new { filterName = "CustomerID", filterValue = @Model.ID })">Click Here</a>;

Du côté de votre contrôleur

public ActionResult FilterCustomerGrid(string filterName, string filterValue)
{
 return View("ImportExcel");
}
0
Vishal Shori