如何在asp中添加链接参数到asp标签助手.. NET Core MVC

本文关键字:asp 标签 NET Core MVC 参数 添加 链接 | 更新日期: 2023-09-27 17:49:26

我有很多使用ASP的经验。. NET MVC 1-5。现在我学习ASP。. NET Core MVC,并且必须传递一个参数来链接页面。例如我有下面的Action

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

如何使用标签帮助器实现此操作的链接?

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

如何在asp中添加链接参数到asp标签助手.. NET Core MVC

您可以使用属性前缀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放到网格或表格的链接中,可以使用下面的代码

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