title: MVC view model inheritance and create action
body: <p>I'm trying to work out the best architecture for handling model type hierarchies within an MVC application.</p>
  
  <p>Given the following hypothetical model -</p>
  
  <pre><code>public abstract class Person
  {
      public string Name { get; set; }
  }
  
  public class Teacher : Person
  {
      public string Department { get; set; }
  }
  
  public class Student : Person
  {
      public int Year { get; set; }
  }
  </code></pre>
  
  <p>I could just create a controller for each type. Person would have just the index and detail action with the views making use of display templates, Teacher and Student would have just the Create/Edit actions. That would work but seems wasteful and wouldn't really scale because a new controller and views would be needed if another type was added to the hierarchy.</p>
  
  <p>Is there a way to make a more generic Create/Edit action within the Person controller? I have searched for the answer for a while but can't seem to find exactly what I am looking for so any help or pointers would be appreciated :)</p>