我正在构建一个ASP.NET Core 2.0 Web应用程序。在ASP.NET WEB中,我使用了System.Web.Mvc,其中我有以下行来获取ControllerName:
descriptor.ControllerDescriptor.ControllerName
在ASP.NET Core 2.0中,这不起作用我收到错误:
错误CS1061'OctionDescriptor'不包含的定义 'ControllerDescriptor'并没有扩展方法'ControllerDescriptor' 接受“ActionDescriptor”类型的第一个参数
在ASP.NET Core 2.0中,我找不到获取ControllerName的替代方法。 有没有人有建议?
答案 0 :(得分:7)
您必须将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?