加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何使用ASP.NET MVC中强制/应用的属性调用控制

发布时间:2020-12-16 09:52:37 所属栏目:asp.Net 来源:网络整理
导读:当我尝试从另一个控制器操作(方法)中调用特定的控制器操作(方法)时,不应用/强制应用于我正在调用的操作的属性. 例如,如果我有一个Controller动作,其中应用了一些属性,如下所示: [Authorize][HttpPost]public ActionResult SaveUsers(ListUser users) { .. }
当我尝试从另一个控制器操作(方法)中调用特定的控制器操作(方法)时,不应用/强制应用于我正在调用的操作的属性.

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

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

然后我从另一个Controller动作调用此动作,不执行/强制执行属性.

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

我的目标是:

>调用特定的操作方法
>执行/执行属性
>从行动方法中获得结果

我设法做了1和3,但不是2.

解决方法

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

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

这可能有效,但是你将动作名称作为字符串引入,这不是一件好事.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读