首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何调用在ASP.NET MVC中强制/应用属性的控制器操作?

如何调用在ASP.NET MVC中强制/应用属性的控制器操作?
EN

Stack Overflow用户
提问于 2012-12-30 17:54:51
回答 1查看 1.7K关注 0票数 4

当我试图从另一个控制器操作(方法)中调用特定的控制器操作(方法)时,应用到所调用的操作的属性不会被应用/强制。

例如,如果我有一个Controller操作,并且应用了如下一些属性:

代码语言:javascript
运行
复制
[Authorize]
[HttpPost]
public ActionResult SaveUsers(List<User> users) { .. }

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

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

我的目标是

  1. 调用特定的操作方法
  2. 强制/执行属性
  3. 从行动方法中获得结果

我成功地做到了1和3,但没有做到2。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-29 11:44:22

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

代码语言:javascript
运行
复制
this.ActionInvoker.InvokeAction(this.ControllerContext, "TargetActionName");

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14093099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档