我在C#asp.net MVC Core Web应用程序中有许多共享视图。共享视图包含使用tag-helpers asp-controller=...
生成的链接,这些链接需要链接回路由视图的控制器。如果页面来自管理控制器,则链接需要指向管理控制器上的路由。如果页面来自用户控制器,则链接需要指向用户控制器上的路由。
我可以在const public const string _controllerName = "Admin";
中对控制器名称进行硬编码,但是如果控制器名称被更改,则需要修改常量。
我可以在控制器中的每一条路线中映射控制器名称,但这看起来非常低效。我想在构造期间获取控制器名称,并将其存储在控制器本身的属性中,以传递给ViewModels以影响在共享视图中生成的链接。 (ControllerContext.RouteData在控制器构造期间不可用)。
有没有办法在控制器构建期间获取控制器的名称 ?或者,有没有办法从共享视图获取链接直接返回控制器而不是生成它们?
示例链接:
<a asp-controller="@Model.ControllerString" asp-action="Computer" asp-route-name="@computer.Position">Computer @computer.Position</a>