我创建了一个页面,向用户显示问题列表&阅读每个问题的用户输入。
问题:当用户提交表单时,Model
参数为空。
View的Post Action定义如下 -
[HttpPost]
public ActionResult Index(IEnumerable<Question> model)
{
return View(model);
}
向用户显示选项的代码如下 -
@foreach (var quest in Model)
{
<li>
@Html.LabelFor(x => quest.Title, quest.Title)
<ol class="Opt">
@foreach (var opt in quest.Options)
{
<li>@Html.RadioButtonFor(o => opt, opt.Title)
@Html.LabelFor(o => opt.Title, opt.Title)
</li>
}
</ol>
</li>
}
此处模型为@model List<LakshyaMvc.Models.Question>
,当然我已将代码包装在@using (Html.BeginForm())
答案 0 :(得分:1)
更改您的视图模型。
@using (Html.BeginForm("Index", "Queries", FormMethod.Post))
{
for (int i = 0; i < Model.Count; i++)
{
<li>
@Html.LabelFor(x => Model[i].Question, Model[i].Question)
<ol class="Opt">
@for (int j = 0; j < Model[i].Options.Count; j++)
{
<li>@Html.RadioButtonFor(o => Model[i].Options[j].Option, false)
@Html.LabelFor(o => Model[i].Options[j].Option,
Model[i].Options[j].Option)
</li>
}
</ol>
</li>
<input type="submit" name="Submit" value="Submit" />
}
}