Я использую простые последовательности:
- Установка состояния сеанса в методе [HttpGet].
- Перенаправление на другое действие с помощью RedirectToAction () в методе [HttpPost].
- Хотите получить значение этого состояния сеанса в месте назначения.
Проблема:
Если пользователь нажимает кнопку "отправить" в моем представлении "Таблица", вседанные в сеансе очищены, и я не могу получить их в действии назначения (это «Таблица»).Вот код:
[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);
}
, и Session ["NavigationData"] всегда равен нулю, когда пользователь достигает его через: return RedirectToAction ("Table").Если пользователь нажимает ссылку HTML в представлении «Редактировать», Session ["NavigationData"] может восстановить его значение в методе «Таблица»!
Есть идеи о том, что происходит?Кто удаляет состояние сеанса?!