title: What approach should be used for model binding to an exisiting session object?
body: <p>Here's my problem:</p>
  
  <p>We have an intranet asp.net mvc 3 application with a controlled set of users. We have a Person class, that contains a large amount of information, that is initially loaded and stored in the session. The data/editing for this object spans across many screens. Basically, each screen is a subset of the Person's data.  </p>
  
  <p>I'm trying to take advantage of the built in model binding in asp.net mvc. Should I create a data class that binds the form data from each screen and then updates my session object using a service object?  </p>
  
  <p>Example below: DxFormData contains a subset of the person data and will only be used as a parameter on this method. </p>
  
  <pre><code> 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; }
  }
  </code></pre>
  
  <p>I'm looking for thoughts on this approach and if there's a better solution available to me. The problem that I see, is that the person class contains all the data and I'm creating another class with a subset of that data. Obviously, duplicating the properties.</p>
  
  <p>Side note: I did write a custom model binder that returned the session person for binding. However, I am continually getting errors when it attempts to bind. </p>