5 つのステップを持つウィザードがあり、各ステップでユーザーから車の販売に関する情報を取得します。1 つ目はオペレーション タイプ (販売、レンタル)、2 つ目はカテゴリ (車、トラック、ボート)、3 つ目はアイテムの詳細 (メーカー、モデル、バージョン)、4 つ目はエクストラ、5 つ目はメンバー アドレスです。
オプションの各ステップ リストは、@Ajax.ActionLink を使用して構築され、結果を次のマスター ページの特定の DIV に送信します (操作 -> カテゴリ -> 広告 -> エクストラ -> メンバー -> 作成)。
@model Heelp.ViewModels.CreateAdViewModel
@using (Html.BeginForm(MVC.Ad.Create(), FormMethod.Post, new { id = "createAdForm" }))
{
@Html.AntiForgeryToken()
<div id="operation">
@{ Html.RenderAction(MVC.Ad.CreateAdOperation()); }
</div>
<div id="category"></div>
<div id="ad"></div>
<div id="extras"></div>
<div id="member"></div>
<input type="submit" value="Create" />
}
このマスター ページには、すべてのステップからすべての情報を受け取り、CreateAd アクションに送信されるすべての「入力」を作成する「マスター」ビューモデル「CreateAdViewModel」があります。
私が今持っているのは、各ステップの ViewModel です。
public class CreateAdOperationViewModel
{
// Operation Fields
}
public class CreateAdCategoryViewModel
{
// Category Fields
}
public class CreateAdViewModel
{
// Common Ad Fields
}
public class CreateAdCarViewModel : CreateAdViewModel
{
// Car View Model Fields
}
主な問題は、このソリューションが理にかなっているかどうかを知ることです。各ビューには独自の ViewModel が必要であることがわかっているため、それぞれ独自の ViewModel を持つさまざまなビューに基づいてマスター ViewModel を送信する必要があります。
お時間をいただきありがとうございます。