我正在构建一个ASP.NET Core 2.0 Web应用程序。在ASP.NET WEB中,我使用System.Web.Mvc,在其中具有以下行来获取ControllerName:

descriptor.ControllerDescriptor.ControllerName

在ASP.NET Core 2.0中,此方法不起作用,我收到错误消息:



在ASP.NET Core 2.0中,我找不到获取ControllerName的替代方法。
有人有建议吗?

最佳答案

您必须将ActionDescriptor实例转换为 ControllerActionDescriptor 实例,才能访问ControllerName属性:

var controllerActionDescriptor = context.ActionDescriptor as ControllerActionDescriptor;
if (controllerActionDescriptor != null)
{
    var controllerName = controllerActionDescriptor.ControllerName;
}

相关:How to read action method's attributes in ASP.NET Core MVC?

09-08 05:23