2016-07-15 68 views
0

我想在我网站的某些页面上自动保存表格。所以我钩入window.onbeforeunload提交表格。我的问题是,我想给他们toastr成功或错误消息,但我不知道的东西已经存在从一个控制器动作持续的数据网站上的任何行动。我不认为我可以使用tempdata或viewbag重定向。这个功能是否已经存在?如何将数据持久化到项目中的任何控制器操作?

回答

0

你为什么不使用模型?我认为,通过控制器的数据的最好办法就是通过你的模型提交给相应的操作,如

return View("ViewName",model); 

或者使用RedirectToAction如果你要接取另一个控制器

return RedirectToAction("YourAction", "YourController", new {model = yourModel}); 

要toastr我建议创建包装,看到http://labs.bjfocus.co.uk/2014/06/create-an-mvc-wrapper-for-toastr/

+0

我允许用户去任何页面,所以我不能没有增加与其他数据发布重定向位置的某种方式使用重定向。 –

0

所以我能够通过使用OnActionExecuting得到这个工作,类似于Preet Singh的回应,但有一些额外的部分。

public const string SESSION_ERROR = "SessionError"; 
    public const string SESSION_SUCCESS = "SessionSuccess"; 

    protected override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     base.OnActionExecuting(filterContext); 
     ViewBag.Error = HttpContext.Session[SESSION_ERROR]; 
     ViewBag.Success = HttpContext.Session[SESSION_SUCCESS]; 
     HttpContext.Session[SESSION_ERROR] = string.Empty; 
     HttpContext.Session[SESSION_SUCCESS] = string.Empty; 
    } 

上面的代码用于保留的消息发送到任何控制器动作,并允许我与HttpContext.Session容易地设定的消息。该代码位于BaseController中,所有控制器都将其扩展。

相关问题