MVC affiche une liste d'objets complexes

J'ai un FeedbackViewModel qui contient une liste de questions:

public class FeedbackViewModel
{
    public List<QuestionViewModel> Questions { get; set; }
}

Ce QuestionViewModel est un objet qui peut être hérité par les 5 différents types de questions

public class QuestionViewModel
{
    public string QuestionText { get; set; }
    public string QuestionType { get; set; }
}

Un exemple de l'héritage types de question:

public class SingleQuestionViewModel : QuestionViewModel
{
    public string AnswerText { get; set; }
}

Dans le HttpGet de la Index action dans le contrôleur-je obtenir les questions de la base de données et ajouter le bon type de question dans la liste de la question dans le FeedbackViewModel Puis-je rendre ce modèle dans la vue:

@using (Html.BeginForm())
{
//foreach (var item in Model.Questions)
for (int i = 0; i < Model.Questions.Count; i++)
{
<div class="form-group">
@Html.DisplayFor(modelItem => Model.Questions[i].QuestionText, new { @class = "control-label col-md-4" })
<div class="col-md-6">
@if (Model.Questions[i].QuestionType == "Single")
{
@Html.EditorFor(modelItem => (Model.Questions[i] as OpenDataPortal.ViewModels.SingleQuestionViewModel).AnswerText)
}
else if (Model.Questions[i].QuestionType == "Multiple")
{
@Html.TextAreaFor(modelItem => (Model.Questions[i] as OpenDataPortal.ViewModels.SingleQuestionViewModel).AnswerText)
}
else if (Model.Questions[i].QuestionType == "SingleSelection")
{
@Html.RadioButtonForSelectList(modelItem => (Model.Questions[i] as OpenDataPortal.ViewModels.SingleSelectionQuestionViewModel).SelectedAnswer,
(Model.Questions[i] as OpenDataPortal.ViewModels.SingleSelectionQuestionViewModel).SelectionAnswers)
}
else if (Model.Questions[i].QuestionType == "MultipleSelection")
{
@Html.CustomCheckBoxList((Model.Questions[i] as OpenDataPortal.ViewModels.MultipleSelectionQuestionViewModel).AvailableAnswers)
}
else if (Model.Questions[i].QuestionType == "UrlReferrer")
{
@Html.EditorFor(modelItem => (Model.Questions[i] as OpenDataPortal.ViewModels.SingleQuestionViewModel).AnswerText)
}
</div>
</div>
<br />
}
<br />
<button type="submit">Submit</button>
}

MVC affiche une liste d'objets complexes


Maintenant, je ne peux tout simplement pas l'obtenir pour publier la liste de questions dans le modèle. Est-il même possible d'afficher une liste des différents types d'objets?


Edit: qui Suit est la liste de données dans le post que j'ai découvert à l'aide de Fiddler:

MVC affiche une liste d'objets complexes

source d'informationauteur Carel