У меня есть страница «Survey», которая объявляется следующим образом:Передача данных на метод контроллера через POST
@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 таким образом.
Что я делаю неправильно?
Вы можете увидеть это http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx и это http://stackoverflow.com/questions/5496593/mvc- net-model-binding-to-array-on-fly/5499341 # 5499341 – Tassadaque