我有一个“调查”页面,声明如下:
@using (Html.BeginForm("Survey", "Home", new { questionList = Model.Questions }, FormMethod.Post))
{
<div class="survey">
<ol class="questions">
@foreach (Question q in Model.Questions)
{
<li class="question" id="@q.QuestionName">
@q.QuestionText<br />
@foreach (Answer a in q.Answers)
{
<input class="answer" id="@a.DisplayName" type="checkbox" /><label for="@a.DisplayName">@a.AnswerText</label>
if (a.Expandable)
{
<input type="text" id="@a.DisplayNameFreeEntry" maxlength="250" /> <span>(250 characters max)</span>
}
<br />
}
</li>
}
</ol>
</div>
<div class="buttons">
<input type="submit" value="Finish" />
</div>
}
当我单步执行我的代码时,它会触发我为处理他们的调查而设置的方法:
[HttpPost]
public ActionResult Survey( List<Question> questionList, FormCollection postData)
{
//Process Survey
}
但是,当我逐步执行时,我发现该变量questionList
为空,并且该变量postData
不包含表单中的任何数据。尝试通过Request[a.Displayname
也无法访问复选框。
我读过的所有内容都表明这是将值从模型持久保存到提交方法的正确方法,并且我应该能够以这种方式访问 FormCollection。
我究竟做错了什么?