我正在学习AJAX,在MVC示例中使用它时,在获取结果方面有些困难。
我的代码包含以下部分:
1- MVC控制器:有一种方法只返回一个值:
[HttpPost]
public JsonResult DemoAjaxMvc()
{
return Json(new { returnedData = "Hello" }, JsonRequestBehavior.AllowGet);
}
2- JavaScript部分:
function testAjax(){
$.ajax({
type: "POST",
url: "DemoAjaxMvc",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//
alert(JSON.stringify(data));
alert(data.length);
alert(data[0].returnedData);
},
error: function (exception) {
console.log(exception);
}
});
}
3-视图部分:
<button type="button" onclick="testAjax()">Show Returned Data</button>
我无法理解的是,代码实际上能够从alert(JSON.stringify(data));
读取数据,但是alert(data.length);
总是返回undefined
,而alert(data[0].returnedData);
返回错误< / p>
如何从returnedData
中成功提取JSON.stringify(data)
?
我发现一些问题的标题与我的问题几乎相同,但是我无法理解它们,因为它们看起来有所不同,而且我还不熟悉如何正确阅读代码
答案 0 :(得分:2)
您不需要字符串化。 dataType: 'json'
告诉jQuery响应应该是JSON,它将自动为您解析为一个对象。此时您需要做的就是像访问任何普通对象一样访问它。
console.log(data.returnedData); //this according to your code should be "Hello"