将复杂Javascript数组发送到ASP.NET控制器方法
Send Complex Javascript Array To ASP.NET Controller Method
我有一个asp.net mvc6控制器方法,我想发送我的复杂javascript数组数据。我用两种方法用json获取复杂数组。首先,我尝试了如下方法:
public IActionResult TakeComplexArray(IList<ComplexArrayInfoModel> data)
{
return PartialView(data);
}
我尝试的第二种方法。
public IActionResult TakeComplexArray(ComplexArrayInfoModel[] data)
{
return PartialView(data);
}
我想发送复杂的javascript数组,如下所示:
[Object, Object, Object, Object, Object]
每个对象的类型都是我的模型类类型ComplexArrayInfoModel。每个对象都有该模型类的不同记录。关于这个复杂阵列的更多细节如下:
[Object, Object, Object, Object, Object]
0: Object
1: Object
2: Object
3: Object
4: Object
length: 5
__proto__: Array[0]
Complex value has data like as below:
0: Object
Name: "aa"
Surname: "bb"
Country: null
City: 5
Age: 20
Gender: null
__proto__: Object
1: Object
Name: "ddd"
Surname: "fff"
Country: null
City: 5
Age: 20
Gender: null
__proto__: Object
2: Object
Name: "zzz"
Surname: "ggg"
Country: null
City: 5
Age: 20
Gender: null
__proto__: Object
3: Object
Name: "www"
Surname: "ccc"
Country: null
City: 5
Age: 20
Gender: null
__proto__: Object
4: Object
Name: "ccc"
Surname: "ddd"
Country: null
City: 5
Age: 20
Gender: null
__proto__: Object
length: 5
__proto__: Array[0]
我想用javascript函数将这些复杂的数据发送到控制器操作,如下所示:
function SendComplexData(data, row) {
return $.ajax({
url: '@Url.Action("TakeComplexArray")',
/*data.complexArray is showed above schema*/
data: JSON.stringify({ data: data.complexArray }),
type: 'POST',
dataType: 'html',
});
}
我无法发送这个复杂的javascript数组。如何将此复杂数组发送到此控制器操作?同时,当我没有使用json.stringfy方法时,我无法发送数据。
您是否尝试使用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控制器的操作方法。
您的$.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' });
-
只传递非JSON数据:
$.ajax({ url: '@Url.Action("TakeComplexArray")', data: {data: data.complexArray}, type: 'POST', dataType: 'html' });
相关文章:
- 借助asp.net验证或java脚本对多个文本进行验证
- 将Javascript数组发送到控制器ASP.NET MVC
- ASP.NET通过单击JavaScript按钮触发c#事件
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 从javascript调用asp.net codebehind函数
- 使用javascript的Asp.net内容占位符
- 获取ASP.NET Ajax Timer状态
- ASP.NET网络摄像头显示
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 如何将乳胶配方奶粉图像保存到Asp.net中的文件夹中
- asp.net,包括iss上的javascript slow
- 选择不在GridView-ASP.NET中激发
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 使用ASP.NET将谷歌地图添加到项目中,并从数据库中检索位置
- 有什么“;错误的”;将javascript放在asp.net表单上,而不是放在单独的文件中
- 将Javascript日期转换为ASP.NET日期格式
- C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
- 在asp.net中确认是或否消息
- ASP.NET MVC 3-在ajax调用后,重定向到新页面或生成页面刷新
- asp.net中的验证工具