【发布时间】:2010-04-22 01:18:28
【问题描述】:
我在将 javascript 数组传递给控制器时遇到了一些问题。我的视图上有几个复选框,当一个复选框被选中时,它的 ID 将被保存到一个数组中,然后我需要在控制器中使用该数组。代码如下:
查看:
<script type="text/javascript">
var selectedSearchUsers = new Array();
$(document).ready(function () {
$("#userSearch").click(function () {
selectedSearchUsers.length = 0;
ShowLoading();
$.ajax({
type: "POST",
url: '/manage/searchusers',
dataType: "json",
data: $("#userSearchForm").serialize(),
success: function (result) { UserSearchSuccess(result); },
cache: false,
complete: function () { HideLoading(); }
});
});
$(".userSearchOption").live("change", function () {
var box = $(this);
var id = box.attr("dataId");
var checked = box.attr("checked");
if (checked) {
selectedSearchUsers.push(id);
}
else {
selectedSearchUsers.splice(selectedSearchUsers.indexOf(id), 1);
}
});
$("#Send").click(function () {
var postUserIDs = { values: selectedSearchUsers };
ShowLoading();
$.post("/Manage/ComposeMessage",
postUserIDs,
function (data) { }, "json");
});
});
</script>
单击“发送”按钮时,我想将 selectedSearchUsers 传递给“ComposeMessage”操作。这是动作代码:
public JsonResult ComposeMessage(List<String> values)
{
//int count = selectedSearchUsers.Length;
string count = values.Count.ToString();
return Json(count);
}
但是,列表值始终为空。知道为什么吗?
非常感谢。
【问题讨论】:
-
听起来类似于这个问题stackoverflow.com/questions/2527658/…
-
我已经尝试过该解决方案,但在将它们传递到我的控制器时仍然为空。任何人?谢谢。
标签: javascript jquery asp.net-mvc arrays