web-dev-qa-db-fra.com

Comment ajouter un paramètre de lien aux assistants de balise asp dans ASP.NET Core MVC

J'ai beaucoup d'expérience avec ASP.NET MVC 1-5. Maintenant, j'apprends ASP.NET Core MVC et je dois passer un paramètre pour créer un lien dans la page. Par exemple, j'ai le suivant Action

 [HttpGet]
 public ActionResult GetProduct(string id)
 {
      ViewBag.CaseId = id;
      return View();
 }

Comment puis-je implémenter le lien pour cette action en utilisant des aides de balises?

<a asp-controller="Product" asp-action="GetProduct">ProductName</a>
63
Elvin Mammadov

Vous pouvez utiliser le préfixe d'attribut asp-route- pour préfixer les noms de vos variables de route.

Exemple: 

<a asp-controller="Product" asp-action="GetProduct" asp-route-id="10"> ProductName</a>
130
Alex

Vous voudrez peut-être appliquer la syntaxe suivante.

<a asp-controller="Member"
   asp-action="Edit"
   asp-route-level="3"
   asp-route-type="full"
   asp-route-id="12">Click me</a>

Cela produira la route d'appel comme ceci.

/ Membre/Modifier/3/complet/12

Ensuite, vous pouvez le recevoir comme indiqué ci-dessous.

[Route({level}/{type}/{id})]
public IActionResult Edit(int level, string type, int id) { ... }

Bien que l'attribut décorant la méthode ne soit pas requis dans MVC, il montre plus clairement comment lier les attributs du lien aux paramètres transmis dans la méthode.

0
Konrad Viltersten