我正在尝试获取并存储JavaScript对象中所有选中复选框的ID。然后将此对象作为数据传递给我的JSON
Action。我能够成功获取所有选中复选框的ID,但是当我将此对象传递给我的操作时,我将变为null。以下是我的代码:
$("#btnSave").on('click', function () {
var selected = [];
$('input:checked').each(function () {
selected.push($(this).attr('id'));
});
$.ajax({
url: '@Url.Action("SaveRecords", "Users")',
data: { ids: selected },
cache: false,
type: "GET",
success: function (data) {}
});
});
我的行动:
public JsonResult SaveRecords(List<int> ids) //Here I'm getting Null.
{
return Json(true, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:0)
正如评论中所建议的那样,因为您要保存数据POST
is more appropriate than GET
。另外,我认为使用JSON作为输入可以省去一些麻烦 - 你已经将它用作动作的输出格式。这意味着您的AJAX调用将如下所示:
$.ajax({
type: 'POST',
url: '@Url.Action("SaveRecords", "Users")',
contentType: 'application/json',
data: JSON.stringify(selected),
success: function (data) { /* ... */ }
});
当我说“通过使用JSON作为输入来节省自己的麻烦”时,我的意思是MVC中的模型绑定集合和复杂类型在将数据作为表单发送时会有点棘手 - 谷歌它你会看到有要注意的几个实现特性。根据我的经验,使用JSON在AJAX上发布的结构化数据的工作方式与您期望的更为相似。