2016-07-15 34 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中,所有控制器都將其擴展。

相關問題