Ich habe viel Erfahrung mit ASP.NET MVC 1-5 . Jetzt lerne ich ASP.NET Core MVC und muss einen Parameter zum Linken auf der Seite übergeben. Zum Beispiel habe ich folgende Aktion
[HttpGet]
public ActionResult GetProduct(string id)
{
ViewBag.CaseId = id;
return View();
}
Wie kann ich den Link für diese Aktion mithilfe von Tag-Helfern implementieren?
<a asp-controller="Product" asp-action="GetProduct">ProductName</a>
Sie können das Attributpräfix asp-route-
verwenden, um den Namen der Routenvariablen voranzustellen.
Beispiel:
<a asp-controller="Product" asp-action="GetProduct" asp-route-id="10"> ProductName</a>
Möglicherweise möchten Sie die folgende Syntax anwenden.
<a asp-controller="Member"
asp-action="Edit"
asp-route-level="3"
asp-route-type="full"
asp-route-id="12">Click me</a>
Das wird die Anrufroute so erzeugen.
/ Mitglied/Bearbeiten/3/voll/12
Dann können Sie es in der unten angegebenen Methode erhalten.
[Route({level}/{type}/{id})]
public IActionResult Edit(int level, string type, int id) { ... }
Obwohl das Attribut, das die Methode dekoriert, in MVC nicht erforderlich ist, wird deutlich, wie die Attribute von der Verknüpfung an die übergebenen Parameter in der Methode gebunden werden.