asp.net-mvc - .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>
解决方案
推荐阅读
- c++ - EXCEPTION_RECORD 在什么情况下会链接到另一个嵌套异常?
- ssis - 在一个执行 SQL 任务中创建的临时表在 SSIS 中的另一个执行 SQL 任务中不可用
- xamarin - Xamarin 表单条目:使用逗号作为小数分隔符
- apache-kafka - 是否可以跟踪 Kafka 中的消费者以及消费者消费消息的时间戳?
- regex - 句子中包含点的整个单词的正则表达式
- c# - c# 克隆 Stream 对象
- python - 使用numpy库在python中拆分数组
- javascript - 在多维数组中找到两个相关数字的最接近组合
- python - 使用 Python 2.7 和 OpenCV 3 检查停车位是否已满
- vue.js - 如何避免将选定的值复制到 Vuetify 中的下一行