C# JSON响应字段未定义
我按照这里的说明阅读了JSON。我找了很多,但没有找到答案。我使用以下代码: 视图: 问题是我得到了C# JSON响应字段未定义,c#,asp.net-mvc,jquery,razor,C#,Asp.net Mvc,Jquery,Razor,我按照这里的说明阅读了JSON。我找了很多,但没有找到答案。我使用以下代码: 视图: 问题是我得到了“未定义” 如果我更改警报(bbb.Val13)至警报(bbb)我得到{“Val13”:“TEST”} 我想这与控制器没有以JSON期望的格式返回JSON有关。试试这个 [HttpPost] public JsonResult PgAJAXTest(string q, string s) { return Json(new { Val13 = " TEST " })
“未定义”
如果我更改
警报(bbb.Val13)代码>至警报(bbb)代码>我得到{“Val13”:“TEST”}
我想这与控制器没有以JSON期望的格式返回JSON有关。试试这个
[HttpPost]
public JsonResult PgAJAXTest(string q, string s)
{
return Json(new { Val13 = " TEST " });
}
试试这个
[HttpPost]
public JsonResult PgAJAXTest(string q, string s)
{
return Json(new { Val13 = " TEST " });
}
您需要将数据类型:“json”
添加到JQuery AJAX请求中
尝试:
var userName=$(“#userName”).val();
$.ajax({
键入:“POST”,
数据类型:“json”,
url:“/Home/PgAJAXTest”,
数据:{
q:‘Test1’,
s:“测试2”
},
成功:功能(bbb){
警报(bbb.Val13);
},
错误:函数(msg){
警报(“错误”);
}
});
您需要将数据类型:“json”
添加到JQuery AJAX请求中
尝试:
var userName=$(“#userName”).val();
$.ajax({
键入:“POST”,
数据类型:“json”,
url:“/Home/PgAJAXTest”,
数据:{
q:‘Test1’,
s:“测试2”
},
成功:功能(bbb){
警报(bbb.Val13);
},
错误:函数(msg){
警报(“错误”);
}
});
您将得到一个字符串响应
使用类似
success: function (bbb) {
var response = jQuery.parseJSON(bbb);
alert(response.Val13);
}
由于您使用的是jQuery,因此可以使用jQuery.parseJSON
来解析字符串。您将得到一个字符串响应
使用类似
success: function (bbb) {
var response = jQuery.parseJSON(bbb);
alert(response.Val13);
}
因为您使用的是jQuery,所以可以使用jQuery.parseJSON
来解析字符串。这也有同样的问题。我只是添加了“a”变量,这样我可以更容易地调试。是的,对不起,请为Mattytomo的答案添加种子,因为它也有同样的问题。我只添加了“a”变量,这样我可以更容易地调试。是的,对不起,请给Mattytomo的答案添加种子是的,这解决了问题,谢谢!但是我如何获得一个常规的JSON响应(这样我就可以使用bbb.Val13)?您的响应来自http,因此默认情况下结果是一个字符串。您可以像上面那样自己解析JSON,或者在发出请求时通过设置datatype:'JSON'
让jQuery为您解析。@tereško是的,我同意使用JSON.parse
或jQuery.parseJSON
更好。更新了我的答案。eval
有效,但现在,我将其更改为jQuery.parseJSON
,但没有。我将继续使用eval
,谢谢。为我(未来用户)工作的eval
行是:var response=eval(“(“+bbb+”)”)代码>是的,这解决了它谢谢!但是我如何获得一个常规的JSON响应(这样我就可以使用bbb.Val13)?您的响应来自http,因此默认情况下结果是一个字符串。您可以像上面那样自己解析JSON,或者在发出请求时通过设置datatype:'JSON'
让jQuery为您解析。@tereško是的,我同意使用JSON.parse
或jQuery.parseJSON
更好。更新了我的答案。eval
有效,但现在,我将其更改为jQuery.parseJSON
,但没有。我将继续使用eval
,谢谢。为我(未来用户)工作的eval
行是:var response=eval(“(“+bbb+”)”)代码>@Clangon-Hmmm,您的代码是否与发布的代码完全一致?听起来JS中使用的变量名和JSON对象创建中使用的变量名是不同的,即使它们以大写字母的形式不同,它仍然很重要。@Mattytomo是的,这是我检查的第一件事,我检查了10次。@Clangon Hmmm,你的代码和发布的完全一样吗?听起来JS中使用的变量名和JSON对象创建中使用的变量名是不同的,即使它们以大写字母的形式存在差异,仍然很重要。@Mattytomo是的,这是我检查的第一件事,我检查了10次。
success: function (bbb) {
var response = jQuery.parseJSON(bbb);
alert(response.Val13);
}