這是因爲RedirectToAction
向瀏覽器返回一個HTTP 302響應,這會導致瀏覽器向指定操作發出請求GET。由於HTTP是無狀態的,你不能簡單地設置在東西一個動作,而在另一個得到它(當它是另一個GET請求)。
你可以做的是
1)通過查詢字符串到新的操作,檢查在接下來的操作方法,並根據所顯示的消息。
return RedirectToAction("ThankYou","Account",new {msg="success"});
,並在三江源行動
public ActionResult ThankYou(string msg)
{
var vm=YourSuccessViewModel();
if(msg="success") // you may do a null checking before accessing this value
{
vm.Message="Saved Successfully";
}
return View(vm);
}
2)存放在如會話/ TempData的臨時場所。 TempData的意思是一個非常短暫的情況下,你應該只在當前,只有後續請求使用它!
TempData["UserMsg"] = "Saved Successfully";
return RedirectToAction("ThankYou","Account");
,並在您ThankYou
行動,你可以讀取它,並根據需要展現給用戶。
public ActionResult ThankYou(string msg)
{
var msg = TempData["UserMsg"] as string;
//to do : do what you want with the message and return the view.
}
會話對象是TempData的對象的後備存儲器,它被破壞比常會更迅速地,即,隨後的請求之後。
使用的TempData,TempData的保持其價值,第二個請求爲@硼烷的答案... – 2013-03-18 12:30:53