Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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
MVC:从视图中的控制器检索传递的Json对象时,出现JavaScript错误_Javascript_Jquery_Asp.net Mvc_Json - Fatal编程技术网

MVC:从视图中的控制器检索传递的Json对象时,出现JavaScript错误

MVC:从视图中的控制器检索传递的Json对象时,出现JavaScript错误,javascript,jquery,asp.net-mvc,json,Javascript,Jquery,Asp.net Mvc,Json,我将一些字符串消息作为视图中的Json对象传递 public ActionResult SomeAction(someObject object) { ..... ..... if (check1) { return Json(new { error = Resource.someMessage1},JsonRequestBehavior.AllowGet); } if(check2) {

我将一些字符串消息作为视图中的Json对象传递

public ActionResult SomeAction(someObject object)
{            
    .....
    .....
    
    if (check1)
    {
        return Json(new { error = Resource.someMessage1},JsonRequestBehavior.AllowGet);
    }
    if(check2)
    {
        return Json(new { error = Resource.someMessage2}, JsonRequestBehavior.AllowGet);
    }
 
    //some stuffs

    return Json(new {success = "success"}, JsonRequestBehavior.AllowGet);
}
我想从我的视图中检索从控制器和警报传递的消息

在视图中,我有一些javascript

function done(data) {
    alert("hello");
    var message = JSON.parse(data);
    alert(message);
    if (message["error"] != undefined) {
        alert(message["error"]);
    } else {
     //do some stuff

    }
};
我所期望的是,若从控制器传递的消息是type error,那个么我会收到带有该消息的警报

警报(“hello”)但之后没有警报。
我在控制台中遇到错误


我做错什么了吗?

如果执行以下代码行

var a = { success : "success" };
var b = JSON.parse(a);
您将得到您提到的关于“SyntaxError:意外令牌o…”的错误

不知道为什么要使用JSON.parse()转换已经存在的JSON对象,您可以使用这个

a.success

读取“success”值。

尝试不解析答案(因此删除“JSON.parse(data)”行),直接从“data”变量读取所有内容。

您必须使用
数据。成功
才能获得结果。无需再次解析。

变量类型被检测为json对象

var x = {"error":"somemessage"};
alert(x.error)
变量在这里被检测为字符串

var x=JSON.parse('{“error”:“somemessage”}');
警报(x.error)


如果您注意到,区别在于#1以{(大括号)开头,而#2以“(撇号)开头

控制台“数据”中的值并在此处共享,想知道传递给此
done()的内容吗
函数。@Biplov..你能发布你的视图代码吗?你是说发送的响应吗?如果是,那么这就是我在浏览器中看到的响应
{“error”:“somemessage”}
。如果没有,我可能不明白你的意思,对不起。对于这个前端来说,这是一个全新的概念thing@Biplov..there不需要解析data@AvinashKothamasu但当我向数据发出警报时,我会将
[object object]
作为警报