如何在控制器构建期间获取asp.net mvc中的控制器名称?

时间:2017-10-24 10:56:37

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

我在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>

0 个答案:

没有答案