我有asp.net mvc6控制器方法,我想发送我复杂的javascript数组数据。我用两个方法用json取复杂数组。首先,我尝试了如下方法:
$(this).append('<span class="loadingspan">Loading</span>');
我尝试的第二种方法。
$('.loadingspan').hide();
我想发送复杂的javascript数组,如下所示:
public IActionResult TakeComplexArray(IList<ComplexArrayInfoModel> data)
{
return PartialView(data);
}
每个对象的类型都是我的模型类类型ComplexArrayInfoModel。每个对象都有此模型类的不同记录。有关此复杂数组的更多详细信息如下所示:
public IActionResult TakeComplexArray(ComplexArrayInfoModel[] data)
{
return PartialView(data);
}
我想通过javascript函数将此复杂数据发送到控制器操作,如下所示:
[Object, Object, Object, Object, Object]
我无法发送这个复杂的javascript数组。如何将此复杂数组发送到此控制器操作?同时,当我不使用json.stringify方法时,我无法发送数据。
答案 0 :(得分:1)
由于将$.ajax
调用配置为发送表单数据和实际发送json数据,因此dataType
调用格式不正确。要修复的两个选项:
将json
设置为contentType
并设置正确的$.ajax({
url: '@Url.Action("TakeComplexArray")',
contentType: "application/json; charset=utf-8",
data: JSON.stringify({data: data.complexArray}),
type: 'POST',
dataType: 'json'
});
$.ajax({
url: '@Url.Action("TakeComplexArray")',
data: {data: data.complexArray},
type: 'POST',
dataType: 'html'
});
只需传递非JSON数据:
$ open http://large-type.com/#YourText
答案 1 :(得分:1)
您是否尝试使用Microsoft的MVC.stringify()方法将适当的数据发送到mvc控制器类。您的javascript函数应如下所示:
function SendComplexData(data, row) {
return $.ajax({
url: '@Url.Action("TakeComplexArray")',
/*data.complexArray is showed above schema*/
data: MVC.stringify({ data: data.complexArray }),
type: 'POST',
dataType: 'html',
});
}
您的控制器类应如下所示:
public IActionResult TakeComplexArray(IList<ComplexArrayInfoModel> data)
{
return PartialView(data);
}
您可以尝试使用此ajax代码将复杂数组发送到mvc6控制器操作方法。