Asp.net mvc 使用MVC操作方法从Multi-Select列表框接收多个值
我是MVC的新手 我试图将数据(类型为“SurveyAnswer”的数组)从HTML表单发布到MVC操作方法 当我从一个只有一个值的html输入(如html.TextBox())传回数据时,一切都正常,但当html输入有多个值(如html.ListBox())时,控制器中的action方法只接受这些值中的第一个值,并移到数组中下一个唯一命名的输入。以下是一个例子: 以下是我的Html表单呈现后的外观:Asp.net mvc 使用MVC操作方法从Multi-Select列表框接收多个值,asp.net-mvc,post,multiple-select,Asp.net Mvc,Post,Multiple Select,我是MVC的新手 我试图将数据(类型为“SurveyAnswer”的数组)从HTML表单发布到MVC操作方法 当我从一个只有一个值的html输入(如html.TextBox())传回数据时,一切都正常,但当html输入有多个值(如html.ListBox())时,控制器中的action方法只接受这些值中的第一个值,并移到数组中下一个唯一命名的输入。以下是一个例子: 以下是我的Html表单呈现后的外观: <form action="/test/VoteConfirmation" method
<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>
测试单选按钮问题
- 无名氏1
- 无名氏2
- 无名氏3
- 无名氏4
- 无名氏5
- 无名氏6
测试单列表问题
无名氏7
无名氏8
无名氏9
测试文本框问题
测试日期选择问题
测试选择问题
测试多列表问题
无名氏10
无名氏11
无名氏12
如您所见,当用户在前5个输入中进行选择时,它们将被发布到action方法。在本例中,隐藏的输入保存的信息不会更改SurveyQuestionID,而其他输入(如文本框)保存的是用户可修改的数据,如SurveyAnswer.AnswerText
当列表框数据被actionMethod解析时,问题就出现了。它查看可用于回答[5]的第一个选定值。SurveyOptionID使用该值,忽略任何其他选定值并继续下一个输入(如果有,则在本例中没有)
如何获得这些多个选项!?我已经尝试了我能想到的一切。
请帮忙
提前感谢,,
Matt你能给我们看一下action方法的签名吗?它是否接受数组参数
public ActionResult ProcessQuestionnaire(Object[] answersArray, Object[] answers)