如何使用操作和控制器名称获取 ActionDescriptor

2024-02-15

给定操作名称、控制器名称和 HTTP 动词(GET、POST 等),是否可以检查该操作是否具有(即被修饰)特定的操作过滤器属性?

请注意:操作和控制器不是当前操作和控制器,而是可以是应用程序中的任何操作和控制器。

Thanks!


我已经回答了我自己的问题,与此非常相似。

  • 问题:如何获取给定操作、控制器和区域名称的操作的 MethodInfo? https://stackoverflow.com/questions/13042819/how-do-i-get-the-methodinfo-of-an-action-given-action-controller-and-area-name
  • answer: https://stackoverflow.com/a/13044838/195417 https://stackoverflow.com/a/13044838/195417

您还需要http method(即 GET、POST)以获得正确的结果,以及操作和控制器名称。

这是解决您的问题的代码片段:

var controllerFactory = ControllerBuilder.Current
    .GetControllerFactory();

var controllerContext = @this.ControllerContext;

var otherController = (ControllerBase)controllerFactory
    .CreateController(
        new RequestContext(controllerContext.HttpContext, new RouteData()),
        controllerName);

var controllerDescriptor = new ReflectedControllerDescriptor(
    otherController.GetType());

var controllerContext2 = new ControllerContext(
    new MockHttpContextWrapper(
        controllerContext.HttpContext.ApplicationInstance.Context,
        method),
    new RouteData(),
    otherController);

var actionDescriptor = controllerDescriptor
    .FindAction(controllerContext2, actionName);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用操作和控制器名称获取 ActionDescriptor 的相关文章

随机推荐

  • Linux内核AIO,开放系统调用

    为什么 Linux 内核 AIO 不支持异步 开放 系统调用 因为 打开 可能会长时间阻塞文件系统 不是吗 首先 这是一个非常好的 合理的问题 不幸的是 它可能会赶走比我更有知识的人 AFAICT 没有good原因 您设法挖掘的讨论是相关的
  • Rails 路由:我缺少什么?

    我的应用程序有票证 票证可以 解决 我可以通过 AJAX POST 到 resolve 操作 没有任何问题 但我无法通过普通的 HTML 表单 POST 我明白了No route matches tickets 321 resolve HT
  • 抽象泛型类采用本身派生自该类的类型参数

    您认为创建一个将派生自自身的类作为类型参数的抽象泛型类是可接受的还是不好的做法 这允许抽象泛型类操作派生类的实例 特别是根据需要创建派生类的 new 实例的能力 并且可以帮助避免在派生自它的具体类中重复代码 如果 不好 您更喜欢什么替代方案
  • 谷歌地图 API v3:在点击折线事件上的两个现有点之间的折线上添加点

    如何在单击折线事件上的两个现有点之间的折线上添加点 谢谢你 如果你只是在谈论一个Polyline只有 2 个点 您可以使用 a 的中心LatLngBounds http code google com apis maps documenta
  • C++ 构造函数中可移动类型的右值

    我正在使用 C 11 并尝试构造一个拥有可移动类型的类 如下所示 class foo std istream input public foo std istream in input in 然后实例化该对象 foo var1 std if
  • Java For-Each循环:排序顺序[重复]

    这个问题在这里已经有答案了 java for each 循环是否保证在列表上调用时元素将按顺序呈现 在我的测试中似乎确实如此 但我似乎找不到任何文档中明确提到的这一点 List
  • 为什么 NetBeans 找不到我的某些项目的 CopyLib?

    今天早上我遇到了一个棘手的问题 我花了几个小时试图追踪它 我继承了两个 NetBeans 项目的一些代码 A and B 他们都成功构建并运行 没有复杂的 Ant 构建任务 只是默认的 IDE 设置 这两个项目共享大量代码 因此我将其分解为
  • 如何从 Rails 模型中删除列?

    我需要从我已经创建的 Rails 模型中删除几列 并且该模型中有一些行条目 怎么做 任何包含修改 Rails 中架构的详细信息的链接吗 我正在使用 Rails 版本 3 要删除数据库列 您必须生成迁移 script rails g migr
  • Jquery:连接两个元素的值

    尝试在 Jquery 中实现一些目标有点卡住了 想知道是否有人可以提供帮助 我正在创建自己的就地编辑功能 您可以在其中单击编辑按钮 然后我的定义列表的内容将被交换为表单 预填充数据 如同this http 15daysofjquery co
  • 函数和 powershell 远程处理

    我有一个运行良好的脚本 但我想提高我的 powershell 知识 并想知道是否有更简单的方法来做到这一点 我的脚本的一部分连接到服务器并拉回服务器上的文件和大小列表并将其导出到 csv 我找到了一个函数 Exportcsv 它允许我使用早
  • 如何在 React js - JSX 中动态创建输入文本字段?

    我对 ReactJS 还很陌生 我遇到了一个场景 我必须创建 6 个彼此非常相似的输入字段 现在我的类渲染方法中有类似的东西 render return div p p div
  • 如何使“旧式”异步方法可等待

    如果我有一个带有回调的异步方法 MyMethodAsync
  • 如何从 jar 库创建 OSGi 包?

    如何从 jar 库创建 OSGi 包 如果您使用的是 eclipse 有一个向导 它允许您选择多个 jar 库并创建包含这些 jar 的插件项目 即 OSGi 包 你可以在这里找到它 File gt New gt Other gt Plug
  • 从 PL/SQL 调用/使用 JMS

    是否可以从 PL SQL 调用 使用 JAVA 消息服务 JMS 我知道我们可以从 pl SQL 调用 java 但是调用 java 与调用 JMS 队列或 JMS 主题不同 因为 JMS 依赖于 JNDI 资源命名 当我们使用基于 JND
  • Python 大量迭代失败

    我写的简单蒙特卡罗 计算 http math fullerton edu mathews n2003 montecarlopimod htmlPython 程序 使用多处理模块 它工作得很好 但是当我为每个工作人员传递 1E 10 次迭代时
  • Spring MVC ExceptionHandler 实现平静和正常

    我想处理正常请求和休息 ajax 请求的异常 这是我的代码 ControllerAdvice public class MyExceptionHandler ExceptionHandler Exception class public M
  • wampserver 主页仅从本地主机可见

    最近我用过WAMPserver 在Windows机器上搭建服务器环境 一切都很好 但我有一个小问题 每个人都可以访问wampserver主页 因此他们可以看到同一服务器上托管的其他网页 服务器文件系统等 网页的 URL 具有以下格式 hos
  • Android PlaceFilter 与 Google Places API 的使用

    我正在尝试使用 Google Places API 并且想将搜索过滤为仅健身房类型 我正在使用给出的代码https developers google com places https developers google com place
  • Mongoose 查询最近 24 小时内的文档,每小时仅查询一个文档

    我正在编写一个应用程序 其中有一些天气传感器每 5 分钟将空气温度和湿度发送到服务器 我想画一张图表来显示温度和湿度如何变化 即一夜之间 我的想法是根据过去 24 小时的数据绘制图表 我自己无法弄清楚 所以我想也许我可以在这里寻求帮助 当然
  • 如何使用操作和控制器名称获取 ActionDescriptor

    给定操作名称 控制器名称和 HTTP 动词 GET POST 等 是否可以检查该操作是否具有 即被修饰 特定的操作过滤器属性 请注意 操作和控制器不是当前操作和控制器 而是可以是应用程序中的任何操作和控制器 Thanks 我已经回答了我自己