问题
I have a lot of experience with ASP.NET MVC 1-5. Now I learn ASP.NET Core MVC and have to pass a parameter to link in page. For example I have the following Action
[HttpGet]
public ActionResult GetProduct(string id)
{
ViewBag.CaseId = id;
return View();
}
How can I implement the link for this action using tag helpers?
<a asp-controller="Product" asp-action="GetProduct">ProductName</a>
回答1:
You can use the attribute prefix asp-route-
to prefix your route variable names.
Example:
<a asp-controller="Product" asp-action="GetProduct" asp-route-id="10"> ProductName</a>
回答2:
You might want to apply the following syntax.
<a asp-controller="Member"
asp-action="Edit"
asp-route-level="3"
asp-route-type="full"
asp-route-id="12">Click me</a>
That will produce the call route like this.
/Member/Edit/3/full/12
Then you can receive it in the method as shown below.
[Route({level}/{type}/{id})]
public IActionResult Edit(int level, string type, int id) { ... }
Although, the attribute decorating the method isn't required in MVC, it shows more clearly how to bind the attributes from the link to the passed in parameters in the method.
来源:https://stackoverflow.com/questions/38047053/how-to-add-link-parameter-to-asp-tag-helpers-in-asp-net-core-mvc