In HomeController
[HttpGet]
public ActionResult Display(int id = 0)
{
var questionViewModel = new InterviewViewModel {
Questions =
new List<QuestionViewModel>()
{
//Hard coded values to represent data coming from db i.e db.QuestionModels.ToList();
new QuestionViewModel() {QuestionId = 1, QuestionName = "A"},
new QuestionViewModel() {QuestionId = 2, QuestionName = "B"}
}
};
return View(questionViewModel);
}
ViewModels
public class InterviewViewModel {
public List<QuestionViewModel> Questions { get; set; }
}
public class QuestionViewModel {
public int QuestionId { get; set; }
public string QuestionName { get; set; }
}
\Views\Home\Display.cshtml
@model MvcApplication1.Models.Interview.InterviewViewModel
@using (Html.BeginForm())
{
<fieldset>
@Html.EditorFor(x => x.Questions)
<input type="submit" value="Save" />
</fieldset>
}
\Views\Shared\EditorTemplates\QuestionViewModel.cshtml
Make sure this is a partial view.
@model MvcApplication1.Models.Questions.QuestionViewModel
<div style="clear:both; margin:10px 0px;">
<label>@Html.DisplayFor(m => m.QuestionName)</label>
</div>
Note that I removed the
@Html.DropDownListFor(m => m.SelectedQuestionOption, Model.OptionSelector)
for to keep the view simple.
This displays..