Рассмотрим следующее.
Модели
public class DemographicsModel
{
public List<QuestionModel> Questions { get; set; }
}
//Does not work at all if this class is abstract.
public /*abstract*/ class QuestionModel
{
//...
}
public class ChooseOneQuestionModel : QuestionModel
{
//...
}
public class ChooseManyQuestionModel : QuestionModel
{
//...
}
public class RichTextQuestionModel : QuestionModel
{
//...
}
public class TextQuestionModel : QuestionModel
{
//...
}
Контроллер
[HttpPost]
public ActionResult Demographics(DemographicsModel model)
{
//...
}
Мой взгляд будет иметь DemographicsModel
с многочисленными вопросами о всех различных типах, какпоказано выше.После того, как форма заполнена и POST
возвращена на сервер, свойство Questions
для Demographics model
повторно заполняется правильным количеством вопросов, но все они имеют тип QuestionModel
вместо конкретного типа.
Как мне заставить эту штуку понять, какой тип создавать?