如何在 ASP.NET 核心 MVC 中为 asp 标签助手添加链接参数

我对 NET MVC 1-5有很多经验。现在我学习 NET 核心 MVC,并且必须传递一个参数来链接页面。例如,我有以下 开拍

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

如何使用标记助手实现此操作的链接?

<a asp-controller="Product" asp-action="GetProduct">ProductName</a>
122533 次浏览

可以使用属性前缀 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>

产生这样的呼叫路径。

/成员/编辑/3/全部/12

然后您可以在下面所示的方法中接收它。

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

尽管在 MVC 中不需要修饰方法的属性,但它更清楚地显示了如何将链接中的属性绑定到方法中传入的参数。

如果您想将变量 id 放入网格或表格中的 link 中,可以使用下面的代码

[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>
}