首页 > 解决方案 > .Net Core MVC - 属性路由和使用自定义锚标记帮助器构建查询字符串

问题描述

在我的 .Net Core 2.1 应用程序中,我必须在页面(几个页面)之间传递一些查询字符串参数。因此,我创建了一个自定义标签助手来使用所需参数构建这些 URL,以避免在我的布局中的每个锚标签后面编码这些参数。

后来我将属性路由添加到我的控制器方法中,以使 URL 成为 SEO。但是这些锚标记不解析/匹配路由,因为它没有找到匹配路由路径所需的参数。我的工作是摆脱自定义标签助手并在内置标签助手中传递参数。

关于如何使路由属性与自定义标签助手一起工作的任何想法?

更新:-------------自定义标签助手-------- -----

[HtmlTargetElement("mya",Attributes =ForAttributeName)]
public class MyAnchorTagHelper : AnchorTagHelper
{
   private const string ForAttributeName = "my-a";

   public ExtAnchorTagHelper(IHtmlGenerator generator) : base(generator) {}
   public override void Process(TagHelperContext context, TagHelperOutput output)
   {
        RouteValues.Add("Param1", "xyz");
        RouteValues.Add("Param2", "abc");
        RouteValues.Add("Param3", "jkl");
        ---------some other code here------------------
        output.TagName = "a";
        base.Process(context, output);
   }

-------------------------路由属性------------------------ --

namespace App.Areas.Admin.Controllers
{
    [Area("Admin")]
    [Route("{param1}/{param2}/{param3}")]
    public class MyController : Controller
    {
        public MyController() {}
        [Route("student",Name ="ManageStudent")]
        public IActionResult Index()
        {
           return View();
        }

-------------------------视图/布局中的代码----------------- ------

<mya my-a="x" asp-area="Admin" asp-controller="My" asp-action="Index" class="list-group-item list-group-item-action">
     <i aria-hidden="true" class="fas fa-user"></i>Students
</mya>

标签: asp.net-mvcasp.net-core

解决方案


推荐阅读