gpt4 book ai didi

asp.net-mvc - 如何使用 Action 和 Controller 名称获取 ActionDescriptor

转载 作者:行者123 更新时间:2023-12-04 08:12:44 26 4
gpt4 key购买 nike

给定 Action 名称、 Controller 名称和 HTTP 动词(GET、POST .. 等),是否可以检查 Action 是否具有(即由)特定 Action 过滤器属性?

请注意: Action 和 Controller 不是当前的 Action 和 Controller ,而是应用程序中的任何 Action 和 Controller 。

谢谢!

最佳答案

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

  • 问题:How do I get the MethodInfo of an action, given action, controller and area names?
  • 答案:https://stackoverflow.com/a/13044838/195417

  • 您还需要 http method (即 GET、POST)以获得正确的结果,以及 Action 和 Controller 名称。

    这是解决您的问题的代码片段:
    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);

    关于asp.net-mvc - 如何使用 Action 和 Controller 名称获取 ActionDescriptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11541758/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com