У меня есть страница «Опрос», которая объявлена следующим образом:
@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
имеет значение null, а переменная postData
не содержит никаких данных из формы. Попытка получить доступ к флажкам через Request[a.Displayname
тоже не работает.
Все, что я прочитал, указывает на то, что это правильный способ сохранения значений из модели в метод отправки, и что таким образом я должен иметь доступ к FormCollection.
Что я делаю неправильно?