ASP.NETMVC4ウィザードがあります。1つの大きなビューモデルをステップからステップに渡すために、先物アセンブリを使用します。モデルを次のようにシリアル化します
@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);
}
...
}
TempDataを
protected override void OnResultExecuted(ResultExecutedContext filterContext)
{
if (filterContext.Result is RedirectToRouteResult)
TempData["model"] = model;
}
すべてのウィザードステップには独自のビューがあり、RedirectToAction( "ActionName")を使用してコントローラーの前/次のアクションを管理します
ブラウザがF5またはメニューを使用して更新されない限り、すべてが正常に機能します。この時点で、コントローラーが再度呼び出されます。TempDataは再度保存されませんが、コントローラーにはすでにモデルがあります。
ただし、2つの列挙型プロパティがありません。これらは前の手順で使用されます。彼らはRadiobuttonForを介してビューにバインドされました。
では、なぜ不完全なモデルがあるのでしょうか。
よろしくお願いしますcsteinmueller