これが私の問題です:
制御された一連のユーザーを含むイントラネット asp.net mvc 3 アプリケーションがあります。大量の情報を含む Person クラスがあり、最初にロードされてセッションに保存されます。このオブジェクトのデータ/編集は、多くの画面にまたがっています。基本的に、各画面は Person のデータのサブセットです。
asp.net mvc に組み込まれているモデル バインディングを利用しようとしています。各画面からフォーム データをバインドし、サービス オブジェクトを使用してセッション オブジェクトを更新するデータ クラスを作成する必要がありますか?
以下の例: DxFormData には個人データのサブセットが含まれており、このメソッドのパラメーターとしてのみ使用されます。
public ActionResult Dx(DxFormData data)
{
// Update current session Person object with data passed in if modelstate is valid
var viewModel = this.GetDxViewModel();
return View(viewModel);
}
public class DxForm Data
{
public string AdmitDx { get; set; }
public string PrinDx { get; set; }
}
このアプローチについての考えと、より良い解決策が利用できるかどうかを探しています。私が見る問題は、人物クラスにすべてのデータが含まれており、そのデータのサブセットを使用して別のクラスを作成していることです。明らかに、プロパティを複製します。
補足: バインディングのためにセッション担当者を返すカスタム モデル バインダーを作成しました。ただし、バインドしようとすると、継続的にエラーが発生します。