内部视图我有相应复选框的图像列表。我想检查一下 图像或图像并将图像id存储到int数组。这个int数组应该发送给 控制器用于进一步处理。
我已经花了太多时间在这上面并且我在控制器上得到int []数据null
问题是: 为什么我在控制器上变为空?
解决! 在我的_Layout jquery脚本中,bundle调用是在文档的最后,当我移动到顶部时,一切正常。
查看
<div id="newsImages">
<img width="50" height="50" alt="" src="/imageOne.jpg">
<input type="checkbox" class="imgCheckbox" id="4">
<img width="50" height="50" alt="" src="/imageTwo.jpg">
<input type="checkbox" class="imgCheckbox" id="5">
<input type="button" value="Delete" name="deleteImgBtn" id="deleteImgBtn" class="deleteImagesBtn">
</div>
JS
var imgList = [];
$(document).on("click", "#deleteImgBtn", function (e) {
e.preventDefault();
$('.imgCheckbox:checked').each(function () {
var id = $(this).attr('id');
//add image id to the array of ints
imgList.push(id);
});
jQuery.ajaxSettings.traditional = true;
var options = {
url: '/news/deleteimages',
type: 'POST',
data: { data: imgList },
traditional: true
};
$.ajax(options).done(function (data) {
var $target = $('#newsImages');
$target.html(data);
});
//reset array of int to prevent browser to send duplicated
//img id to the controller on second attempt after ajax request is completed
imgList.length = 0;
//prevent browser from any default actions
return false;
});
CONTROLLER
public ActionResult DeleteImages(int[] data)
{
...
}
答案 0 :(得分:2)
答案 1 :(得分:0)
var myarr = [];
myarr[0] = 'as';
myarr[1] = 'we';
console.log ( JSON.stringify( myarr ) );
输出是:
["as","we"]
在PHP方面,使用json_decode
:
print_r( json_decode('["as","we"]') );
将输出:
Array ( [0] => as [1] => we )