Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# JSON响应字段未定义_C#_Asp.net Mvc_Jquery_Razor - Fatal编程技术网

C# 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 " })

我按照这里的说明阅读了JSON。我找了很多,但没有找到答案。我使用以下代码:

视图:

问题是我得到了
“未定义”

如果我更改
警报(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);
}