如何将 link 参数添加到 ASP.NET Core MVC 中的 asp 标记助手
How to add link parameter to asp tag helpers in ASP.NET Core MVC
我对 ASP.NET MVC 1-5 有很多经验。现在学习ASP.NET Core MVC 必须在page中给link传递一个参数。例如我有以下 Action
[HttpGet]
public ActionResult GetProduct(string id)
{
ViewBag.CaseId = id;
return View();
}
如何使用标签助手为这个动作实现 link?
<a asp-controller="Product" asp-action="GetProduct">ProductName</a>
您可以使用属性前缀 asp-route-
作为路由变量名称的前缀。
示例:
<a asp-controller="Product" asp-action="GetProduct" asp-route-id="10"> ProductName</a>
您可能需要应用以下语法。
<a asp-controller="Member"
asp-action="Edit"
asp-route-level="3"
asp-route-type="full"
asp-route-id="12">Click me</a>
这将产生这样的调用路由。
/Member/Edit/3/full/12
然后就可以在如下图的方法中接收了
[Route({level}/{type}/{id})]
public IActionResult Edit(int level, string type, int id) { ... }
虽然在MVC中不需要装饰方法的属性,但它更清楚地显示了如何将link中的属性绑定到方法中传入的参数。
如果你想将变量 id 放入网格中的 link 或者 table 可以使用下面的代码
[HttpGet]
[Route("/Product/GetProduct/{id}")]
public ActionResult GetProduct(string id)
{
ViewBag.CaseId = id;
return View();
}
<a asp-controller="Product" asp-action="GetProduct" asp-route-id="@item.id" >ProductName</a>
在后端:
这段代码必须写在控制器中动作的顶部
[Route("/Controller/Method/{Object or varible name}")]
public actionresult method name(your variable)
{
//your code...
}
在前端:
@{
var url = "/Controller/Method/" + your data;
<a href="@url"> click me for send data()</a>
}
我对 ASP.NET MVC 1-5 有很多经验。现在学习ASP.NET Core MVC 必须在page中给link传递一个参数。例如我有以下 Action
[HttpGet]
public ActionResult GetProduct(string id)
{
ViewBag.CaseId = id;
return View();
}
如何使用标签助手为这个动作实现 link?
<a asp-controller="Product" asp-action="GetProduct">ProductName</a>
您可以使用属性前缀 asp-route-
作为路由变量名称的前缀。
示例:
<a asp-controller="Product" asp-action="GetProduct" asp-route-id="10"> ProductName</a>
您可能需要应用以下语法。
<a asp-controller="Member"
asp-action="Edit"
asp-route-level="3"
asp-route-type="full"
asp-route-id="12">Click me</a>
这将产生这样的调用路由。
/Member/Edit/3/full/12
然后就可以在如下图的方法中接收了
[Route({level}/{type}/{id})]
public IActionResult Edit(int level, string type, int id) { ... }
虽然在MVC中不需要装饰方法的属性,但它更清楚地显示了如何将link中的属性绑定到方法中传入的参数。
如果你想将变量 id 放入网格中的 link 或者 table 可以使用下面的代码
[HttpGet]
[Route("/Product/GetProduct/{id}")]
public ActionResult GetProduct(string id)
{
ViewBag.CaseId = id;
return View();
}
<a asp-controller="Product" asp-action="GetProduct" asp-route-id="@item.id" >ProductName</a>
在后端:
这段代码必须写在控制器中动作的顶部
[Route("/Controller/Method/{Object or varible name}")]
public actionresult method name(your variable)
{
//your code...
}
在前端:
@{
var url = "/Controller/Method/" + your data;
<a href="@url"> click me for send data()</a>
}