如何在 ASP.NET Core MVC 标签助手语法中添加多个属性/参数?

问题描述 投票:0回答:1

以下是过滤的工作原理:

  • 在初始加载时,或者当用户单击“所有常见问题解答”链接时,应用程序应显示所有常见问题解答。
  • 当用户点击类别链接时,应用程序应按类别过滤常见问题解答。如果用户随后单击主题链接,常见问题解答将按主题和类别过滤。
  • 当用户单击主题链接时,应用程序应按主题过滤常见问题解答。如果用户随后单击类别链接,应用程序应按主题和类别过滤常见问题解答。

这是我的要求,需要像这样创建网址

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>
url routes asp.net-core-mvc
1个回答
0
投票

我不知道如何根据选择的过滤器在视图中使用 asp 属性构建这样的 url

asp.net core 中,您会看到 UrlHelperExtensions 类,它具有 Url.ActionUrl.RouteUrl 的扩展类方法,如下所示:

如何在 ASP.NET Core MVC 标签中添加多个属性/参数 辅助语法?

使用 Url.ActionUrl.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 的更多详细信息,您可以在这里查看我们的官方文档.

© www.soinside.com 2019 - 2024. All rights reserved.