我想访问当前正在执行的控制器,以便将相应的ActionResult的返回卸载到辅助方法上。为此,我正在寻找相当于我认为会是ControllerContext.Current但不是。谢谢!控制器相当于ASP.NET MVC中的HttpContext.Current
编辑澄清:我有一个基于JavaScript的通用表单控件,但我想添加一个选项,以便它与noscript一起使用。此刻,我的控制器将ViewData.Model设置为JSON化的Models.FormResponse <T>。
此FormReponse设置了帖子的状态以及生成的所有错误消息,所以我想要一个执行脚本/无脚本检查(隐藏表单输入)的GetActionResult()方法,并且要么:
- 设置模型的JSONed FormResponse并返回一个视图(),或
- 序列化FormResponse的会话,并返回一个重定向()。
由于这显然改变返回值,我不想做每一次检查自己,我需要调用查看或为了从FormResponse的GetActionResult方法重定向调用此为:
return formResponse.GetActionResult();
我知道更多的航天设计,这可能会变得更加强大,但由于noscript选项目前不是主要功能,我只需要获得一个快速解决方案,不会破坏其他事情。
更新#2
下,在一个ActionResult类中实现,做这项工作对我来说。感谢CVertex!
public override void ExecuteResult(ControllerContext context)
{
if (CMSEnvironment.NoScript)
{
Oracle.Response.Redirect(Oracle.Request.UrlReferrer.ToString(), true);
}
context.Controller.ViewData.Model = _model.ToJSON();
new ViewResult()
{
ViewName = Areas.Site.Helpers.SharedView.Service,
ViewData = context.Controller.ViewData
}.ExecuteResult(context);
}
您想在哪里查看此访问权限? – 2009-03-01 12:53:56