1
調用RedirectToAction()之後擦除我用一個簡單的序列:會話狀態的ASP.NET MVC 3
- 設置一個會話狀態中[HTTPGET]方法。
- 在[HttpPost]方法中使用RedirectToAction()重定向到另一個操作。
- 想要獲取目標中該會話狀態的值。
問題:
如果用戶點擊「提交」按鈕對我的「表」視圖中,所有的內部會議上得到的數據清除,我不能在目的地的行動讓他們(這是「表」 )。下面是代碼:
[HttpGet]
public ActionResult Edit(string TableName, int RowID, NavigationControl nav)
{
if (nav != null) Session["NavigationData"] = nav;
myService svc = new myService (_repository);
EditViewModel model = new EditViewModel();
model.TableDefinitions = svc.GetTableDefinition(TableName);
model.RowData = svc.GetRowData(model.TableDefinitions.Name, RowID);
return View(model);
}
[HttpPost]
public ActionResult Edit(EditViewModel model)
{
MyService svc = new MyService (_repository);
svc.SaveRowData(model.TableDefinitions.Name, model.RowData);
return RedirectToAction("Table");
}
public ActionResult Table(string TableName)
{
myService svc = new myService (_repository);
TableViewModel model = new TableViewModel();
model.TableDefinition = svc.GetTableDefinition(TableName);
NavigationControl nav = (NavigationControl)Session["NavigationData"];
if (nav != null)
{
model.NavigationControl = nav;
}
return View(model);
}
,並且當用戶通過到達它會話[「NavigationData」]總是空:返回RedirectToAction(「表」)。 如果用戶在「編輯」視圖上點擊HTML鏈接,Session [「NavigationData」]可以在「Table」方法中恢復其值!
想知道發生了什麼? 誰刪除會話狀態?
你在負載均衡器下運行應用程序嗎? – ryudice
什麼是「負載平衡器」?我在visual studio 2010,asp.net開發服務器(cassini)下運行它。 – Tohid