В моем приложении .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>