AspNetCore.Mvc

时间:2017-08-25 07:20:12

标签: c# asp.net-core

我正在构建一个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的替代方法。 有没有人有建议?

1 个答案:

答案 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?