当我试图从另一个控制器操作(方法)中调用特定的控制器操作(方法)时,应用到所调用的操作的属性不会被应用/强制。
例如,如果我有一个Controller操作,并且应用了如下一些属性:
[Authorize]
[HttpPost]
public ActionResult SaveUsers(List<User> users) { .. }然后我从另一个Controller操作中调用这个操作,属性不会被执行/强制。
MVC似乎在其默认实现“ActionFilterAttribute/ActionMethodSelectorAttribute”中管理这些ActionInvoker的执行,但不幸的是,当您直接使用ActionInvoker时,它并不返回操作方法的结果,而是简单地调用操作并直接写入响应流。
我的目标是:
我成功地做到了1和3,但没有做到2。
发布于 2013-08-29 11:44:22
您可以尝试显式地通过一个ActionInvoker。这是正常执行您的操作的对象,但它由MVC管道调用。在源操作中,执行如下操作:
this.ActionInvoker.InvokeAction(this.ControllerContext, "TargetActionName");这可能会起作用,但您可以将操作名称作为字符串引入,这不是一件好事。
https://stackoverflow.com/questions/14093099
复制相似问题