控制器等效于ASP.NET MVC中的HttpContext.Current
我想访问当前正在执行的Controller,以便我可以将相应的ActionResult的返回卸载到辅助方法上。为此,我正在寻找相当于我认为是ControllerContext.Current但却不是。谢谢!
编辑澄清:我有一个基于JavaScript的通用表单控件,但我想添加一个选项,以便它与noscript一起使用。目前,我的Controller将ViewData.Model设置为JSON-ified Models.FormResponse< T>。
这个FormReponse是根据帖子的状态和生成的任何错误消息设置的,所以我想要一个GetActionResult()方法来执行脚本/ noscript检查(一个隐藏的表单输入),并且:
将Model设置为JSONed FormResponse并返回View()或
将FormResponse序列化为Session并返回Redirect()。
因为这显然会改变返回值,我不想每次都自己检查,我需要从FormResponse的GetActionResult方法调用View或Redirect,以便将其称为:
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);
}
没有找到相关结果
已邀请:
2 个回复
豆兢
臀博