Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 使用MVC操作方法从Multi-Select列表框接收多个值_Asp.net Mvc_Post_Multiple Select - Fatal编程技术网

Asp.net mvc 使用MVC操作方法从Multi-Select列表框接收多个值

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

我是MVC的新手

我试图将数据(类型为“SurveyAnswer”的数组)从HTML表单发布到MVC操作方法

当我从一个只有一个值的html输入(如html.TextBox())传回数据时,一切都正常,但当html输入有多个值(如html.ListBox())时,控制器中的action方法只接受这些值中的第一个值,并移到数组中下一个唯一命名的输入。以下是一个例子:

以下是我的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>

  • 测试单选按钮问题
    • 无名氏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)