我對MVC很新穎。從多選擇列表框中接收MVC操作方法的多個值
我想從HTML表單向MVC操作方法發佈數據(「SurveyAnswer」類型的數組)。
一切工作正常,我從具有單個值的HTML輸入(如Html.TextBox())傳回數據,但是當html輸入具有多個值(如Html.ListBox())時,操作方法在我的控制器中,只取這些值中的第一個值,並轉到數組中的下一個唯一命名的輸入。這裏有一個例子:
這裏是我的HTML表單看起來是渲染後:
<form action="/test/VoteConfirmation" method="post">
<li>Test RadioButton Question<br/>
<input id="answersArray[0]_SurveyQuestionID" name="answersArray[0].SurveyQuestionID" type="hidden" value="2" />
<ul>
<li>Jane Doe 1<input id="answersArray[0]_SurveyOptionID" name="answersArray[0].SurveyOptionID" type="radio" value="13" /></li>
<li>Jane Doe 2<input id="answersArray[0]_SurveyOptionID" name="answersArray[0].SurveyOptionID" type="radio" value="14" /></li>
<li>Jane Doe 3<input id="answersArray[0]_SurveyOptionID" name="answersArray[0].SurveyOptionID" type="radio" value="15" /></li>
<li>Jane Doe 4<input id="answersArray[0]_SurveyOptionID" name="answersArray[0].SurveyOptionID" type="radio" value="16" /></li>
<li>Jane Doe 5<input id="answersArray[0]_SurveyOptionID" name="answersArray[0].SurveyOptionID" type="radio" value="17" /></li>
<li>Jane Doe 6<input id="answersArray[0]_SurveyOptionID" name="answersArray[0].SurveyOptionID" type="radio" value="18" /></li>
</ul>
</li>
<li>Test SingleList Question<br/>
<input id="answersArray[1]_SurveyQuestionID" name="answersArray[1].SurveyQuestionID" type="hidden" value="3" />
<select id="answersArray[1]_SurveyOptionID" name="answersArray[1].SurveyOptionID">
<option value="19">Jane Doe 7</option>
<option value="20">Jane Doe 8</option>
<option value="21">Jane Doe 9</option>
</select>
</li>
<li>Test TextBox Question<br/>
<input id="answersArray[2]_SurveyQuestionID" name="answersArray[2].SurveyQuestionID" type="hidden" value="4" />
<input id="answersArray[2]_AnswerText" name="answersArray[2].AnswerText" type="text" value="" /></li>
<li>Test DateChoice Question<br/>
<input id="answersArray[3]_SurveyQuestionID" name="answersArray[3].SurveyQuestionID" type="hidden" value="5" />
<input id="answersArray[3]_AnswerText" name="answersArray[3].AnswerText" type="text" value="" />
</li>
<li>Test NumChoice Question<br/>
<input id="answersArray[4]_SurveyQuestionID" name="answersArray[4].SurveyQuestionID" type="hidden" value="6" />
<input id="answersArray[4]_AnswerText" name="answersArray[4].AnswerText" type="text" value="" />
</li>
<li>Test MultiList Question<br/>
<input id="answersArray[5]_SurveyQuestionID" name="answersArray[5].SurveyQuestionID" type="hidden" value="7" />
<select id="answers[5]_SurveyOptionID" multiple="multiple" name="answers[5].SurveyOptionID">
<option value="22">Jane Doe 10</option>
<option value="23">Jane Doe 11</option>
<option value="24">Jane Doe 12</option>
</select></li>
<input type="submit" />
</form>
正如你可以看到,當用戶在第一5個輸入選擇,它們發佈到行動方法。隱藏的輸入保存不會改變的信息,在這種情況下爲SurveyQuestionID,其他輸入(如文本框)保存用戶可修改的數據,如SurveyAnswer.AnswerText。
問題出在ListBox數據由actionMethod解析時出現。它查看可用於答案的第一個選定值[5] .SurveyOptionID使用該值,忽略任何其他選定值並轉到下一個輸入(如果有,則在本例中不存在)。
如何獲得這些多選!我已經提前嘗試一切我能想到:(中。 請幫幫忙,
謝謝, 馬特