这有效(警报显示:value1,value2)
$.ajax({
type: 'GET',
//url: '@Url.Action("GetCustomerInfo","CustomerInfo")',
url: "../CustomerInfo/GetCustomerInfo",
dataType: "JSON",
contentType: "application/json",
success: function (customerInfoList) {
alert(customerInfoList);
}
});
但不是这个(警报未显示 - chrome调试器显示:发生了意外错误!)
$.ajax({
type: 'GET',
//url: '@Url.Action("GetCustomerInfo","CustomerInfo")',
url: "../CustomerInfo/GetCustomerInfo",
dataType: "JSON",
contentType: "application/json",
success: function (customerInfoList) {
var obj = JSON.parse(customerInfoList);
alert(obj);
}
});
这用于ASP.NET MVC项目;在控制器后面使用了代码片段
List<string> customerInfoList = new List<string>();
if (!string.IsNullOrEmpty(customerId))
{
customerInfoList = customerInfoRepo.GetCustomerInfo(customerId);
}
return Json(customerInfoList, JsonRequestBehavior.AllowGet);
怎么了?
更新: 我需要将该列表中的客户ID和名称设置为cshtml中的表 - 因为我在将列表发送到视图之前执行了以下操作来填充列表。
using (dbContext)
{
var customerInfo = (from c in dbContext.Customers
where c.CustomerID == customerId
select c).ToList();
foreach (var x in customerInfo)
{
customerInfoList.Add(x.CustomerID);
customerInfoList.Add(x.Name);
}
return customerInfoList;
}
答案 0 :(得分:1)
obj
仅提供类似[object Object]的内容。只需做alert(obj.something)
之类的东西,其中某些东西是json中的关键。
例如:
var text = '{"name":"John Johnson","street":"Oslo West 16","phone":"555 1234567"}'
var obj = JSON.parse(text);
alert(obj.name);
警告John Johnson,但如果你alert(obj)
,它只会返回[object Object]
希望这有帮助
截至目前,尚不清楚错误的来源,但我怀疑它来自JSON脚本。 &#34; json&#34;:将响应评估为JSON并返回JavaScript对象。 JSON数据以严格的方式解析;任何格式错误的JSON都会被拒绝,并抛出一个解析错误。从jQuery 1.9开始,空响应也被拒绝;服务器应该返回null或{}的响应。 (有关正确的JSON格式的更多信息,请参阅json.org。)
请参阅:jQuery.ajax
答案 1 :(得分:1)
在第二个示例中,您使用JSON.parse()
来解析已经是JSON格式的数据(由控制器操作方法返回)。 JSON.parse()
用于将字符串解析为JSON。要演示,请在浏览器控制台中输入以下内容
var data = '{"name": "John"}'; // data is a string!
data = JSON.parse(data); // data is now JSON (a javascript object)
alert(data.name); // alerts John
data = JSON.parse(data) // throws Uncaught SyntaxError: Unexpected token o