以下是过滤的工作原理:
这是我的要求,需要像这样创建网址
http://localhost/home/index/topic/javascript
但我不知道如何根据所选过滤器在视图中使用 asp 属性构建这样的 url。
这个我试过了
<a class="nav-link text-dark"
href = "@Url.Action("FAQs", new { category = "Technical", topic = "Installation" })">JavaScript</a>
<a class="nav-link text-dark"
asp-area="" asp-controller="Home" asp-action="Index">Bootstrap</a>
我不知道如何根据选择的过滤器在视图中使用 asp 属性构建这样的 url
在 asp.net core 中,您会看到 UrlHelperExtensions 类,它具有 Url.Action 和 Url.RouteUrl 的扩展类方法,如下所示:
如何在 ASP.NET Core MVC 标签中添加多个属性/参数 辅助语法?
使用 Url.Action 和 Url.RouteUrl TagHelper 方法重载了 object 的参数类型? values 您可以根据需要将多个属性/参数传递给控制器。
解决方案:
让我们在实践中检查一下:
控制器:
public class HtmlTagHelperController : Controller
{
public IActionResult Index()
{
return View();
}
public ActionResult DoubleParamter(string? category, string? topic)
{
var response = string.Format("You have sent: Category:{0}, Topic:{1}", category, topic);
return Ok(response);
}
public ActionResult TripleParamter(string? category, string? topic, int? page)
{
var response = string.Format("You have sent: Category:{0}, Topic:{1}, Page: {2}", category, topic, page);
return Ok(response);
}
}
Razor 标签助手:
<a class="nav-link text-dark" href="@Url.Action("DoubleParamter","HtmlTagHelper", new { category="Technical",topic="Instalattion"})">Way: 1 : Submit Double Parameter</a>
<a class="nav-link text-dark" href="@Url.RouteUrl("default", new{httproute = "", controller="HtmlTagHelper",action="DoubleParamter",category="Technical",topic="Instalattion"})">Way: 2 : Submit Double Parameter</a>
<hr />
<a class="nav-link text-dark" href="@Url.Action("TripleParamter","HtmlTagHelper", new { page=1,category="Technical",topic="Instalattion"})">Way: 1 :Submit Triple Parameter</a>
<a class="nav-link text-dark" href="@Url.RouteUrl("default", new{httproute = "", controller="HtmlTagHelper",action="TripleParamter",category="Technical",topic="Instalattion",page=1})">Way: 2 :Submit Triple Parameter</a>
输出:
注意: 如果您想了解有关 asp.net core TagHelperExtensions 的更多详细信息,您可以在这里查看我们的官方文档.