gpt4 book ai didi

asp.net-mvc - 如何调用具有在 ASP.NET MVC 中强制/应用的属性的 Controller 操作?

转载 作者:行者123 更新时间:2023-12-01 02:29:21 25 4
gpt4 key购买 nike

当我尝试从另一个 Controller 操作(方法)中调用特定的 Controller 操作(方法)时,已应用于我正在调用的操作的属性不会应用/强制执行。

例如,如果我有一个 Controller 操作,其中应用了一些属性,如下所示:

[Authorize]
[HttpPost]
public ActionResult SaveUsers(List<User> users) { .. }

然后我从另一个 Controller 操作中调用此操作,不会执行/强制执行属性。

MVC 似乎在其“ActionInvoker”的默认实现中管理这些 ActionFilterAttribute/ActionMethodSelectorAttribute 的执行,但不幸的是,当您直接使用 ActionInvoker 时,它不会返回操作方法的结果,而是简单地调用操作并直接写入到响应流。

我的目标是这个 :
  • 调用特定的 Action 方法
  • 具有强制/执行的属性
  • 从 Action 方法获取结果

  • 我设法做到了 1 和 3,但没有做到 2。

    最佳答案

    您可以尝试显式地通过 ActionInvoker。这是正常执行您的操作的对象,但它由 MVC 管道调用。在您的源操作中,执行以下操作:

    this.ActionInvoker.InvokeAction(this.ControllerContext, "TargetActionName");

    这可能有效,但是您将操作名称作为字符串引入,这不是一件好事。

    关于asp.net-mvc - 如何调用具有在 ASP.NET MVC 中强制/应用的属性的 Controller 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14093099/

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