jquery - 如何从发送 JSON 数据的 AJAX 调用访问数据?
问题描述
我正在尝试使用 ajax 调用。我正在做的是通过 ajax 调用将对象列表传递给控制器。自动模型绑定工作正常,但我想做的是从输入流中手动读取 json 字符串,但我的解决方案不起作用。谢谢你。
$(document).ready(function () {
var data = [{ Data1: "data1", Data2: 1, Data3: 41 },
{ Data1: "data2", Data2: 12, Data3: 42 },
{ Data1: "data3", Data2: 13, Data3: 43 }
];
$("#PassList").click(function () {
$.ajax({
contentType: "application/json; charset=utf-8",
dataType: 'html',
type: 'POST',
url: '/Home/PassList',
data: JSON.stringify(data) ,
success: function (data) {
alert("Success passing List");
},
error: function (xhr, ajaxOptions, thrownError) {
alert("failure");
}
});
});
});
[HttpPost]
public ActionResult PassList(List<SampleData> SampleDatas, string NewData)
{
System.IO.StreamReader sr = new System.IO.StreamReader(Request.InputStream);
string line = "";
line = sr.ReadToEnd();
return View();
}
解决方案
默认模型绑定器工作正常,因为您设置:
contentType: "application/json; charset=utf-8",
在你的ajax调用中。
要从输入流中手动读取 json 字符串,请在 ajax 中注释以下两行:
// contentType: "application/json; charset=utf-8",
// dataType: 'html',
在控制器方面,您将拥有:
public ActionResult PassList()
{
System.IO.StreamReader sr = new System.IO.StreamReader(Request.InputStream);
string line = "";
line = sr.ReadToEnd();
return View();
}
推荐阅读
- sql-server - 从 SQL Server 执行 Oracle 11g 函数并将结果插入 SQL 表
- javascript - Javascript如何区分mouseDown、click和doubleClick事件
- laravel - 在 Laravel 7 中使用观察者测试模型
- string - 来自字符串的 Delphi Hash - 小菜一碟?
- pine-script - 一开始就声明变量
- javascript - 通过 React 功能组件将功能从父级传递给子级
- python - 如何将多个 .npy 文件加载到单个 numpy 数组中
- django - ModelForm 没有将任何数据保存到数据库 - Django
- zsh - zsh 参数扩展,过滤掉与模式匹配的数组元素
- android - Flutter 轻松加载,如何编辑它的文字样式(下划线、字体系列、大小)?