如何确定 IResourceFilter 中的 Controller 名称和 Action 名称?

我正在编写一个 ASP.NET Core 资源过滤器,并且我想在 OnResourceExecuting 方法中禁用对某些控制器/操作的处理。

我在Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext类中找不到任何 api 来获取控制器名称和操作名称。

有人有什么想法吗?谢谢!


慕桂英4014372
浏览 150回答 1
1回答

海绵宝宝撒

该ResourceExecutingContext包含一个ActionDescriptor属性(文档)。这是Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptoror的基类Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor。因此,当您将其转换为ControllerActionDescriptor( docs ) 时,您可以访问ControllerNameandActionName属性。if(resourceContext.ActionDescriptor is ControllerActionDescriptor controllerDescriptor){    var controllerName = controllerDescriptor.ControllerName;}
打开App,查看更多内容
随时随地看视频慕课网APP