【发布时间】:2013-01-08 14:55:47
【问题描述】:
我有一个 ASP.NET MVC4 向导。为了逐步传递一个大视图模型,我使用了期货程序集。我用
序列化我的模型@Html.Serialize("model", Model, SerializationMode.Signed);
并在控制器中反序列化它
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var serialized = Request.Form["model"];
if (serialized != null)
{
model = (BausparViewModel)new MvcSerializer().Deserialize(serialized, SerializationMode.Signed);
TryUpdateModel(model);
}
...
}
我在
中设置了 TempDataprotected override void OnResultExecuted(ResultExecutedContext filterContext)
{
if (filterContext.Result is RedirectToRouteResult)
TempData["model"] = model;
}
每个向导步骤都有自己的视图,我使用 RedirectToAction("ActionName") 管理控制器中的上一个/下一个操作
只要使用 F5 或菜单没有刷新浏览器,一切正常。在这一点上,控制器再次被调用。控制器已经有一个模型,虽然 TempData 没有被再次保存。
但是缺少两个枚举属性。它们在前面的步骤中使用。他们通过 RadiobuttonFor 绑定到视图。
那么为什么会有一个不完整的模型呢?
提前致谢 csteinmueller
【问题讨论】:
标签: asp.net html asp.net-mvc asp.net-mvc-3 asp.net-mvc-futures