我检查了其他答案,他们似乎没有解决这个问题:
var values = [];
$('#EnrolledParticipants :selected').each(function (i, option) {
values[i] = $(option).text();
});
这将返回一个数组,其元素数量等于所选选项的数量。
但是,我想做的是返回一个包含列表框中所有内容的数组,而不仅仅是选定的内容。
当我执行此代码时:
var values = [];
$('#EnrolledParticipants').each(function (i, option) {
values[i] = $(option).text();
});
它返回一个包含一个元素的数组,列表框的每个选项都用空格分隔。知道有什么不同吗?有没有“:任何”或类似的东西我可以尝试?
有关其他信息,我的 ajax 调用如下所示:
$.ajax({
url: '@Url.Action("SaveStudy")',
type: "POST",
contentType: 'application/json',
data: JSON.stringify({
Participants: values,
StudyName: $("#StudyName").val(),
AssessmentID: $("input:radio:checked").val()
}),
success: function (result) {
$("#notify-container").notify("create", {
title: 'Update',
text: "Study was saved to database."
});
},
error: function () {
alert("No banks were selected. Add at least one bank to create an assessment.");
}
});
我的控制器标头如下所示:
public ActionResult SaveStudy(string StudyName, string AssessmentID, string[] Participants)
{
谢谢!