1

我按照此处的说明从 ASP.NET MVC2 应用程序执行 Ajax 调用问题,并阅读了有关 JSON 的信息。我搜索了很多,但没有找到答案。我使用以下代码:

看法:

<script type="text/javascript">
var userName = $("#userName").val();

$.ajax({
    type: 'POST',
    url: '/Home/PgAJAXTest',
    data: {
        q: 'Test1',
        s: 'Test2'
    },
    success: function (bbb) {
        alert(bbb.Val13);
    },
    error: function (msg) {
        alert("error");
    }
});

</script>

ASP.NET MVC 控制器代码为:

    [HttpPost]
    public JsonResult PgAJAXTest(string q, string s)
    {
        var a = Json(new { Val13 = " TEST " }); 
        return a;
    }

问题是我得到了"undefined".
如果我alert(bbb.Val13);改为alert(bbb);我得到{"Val13":" TEST "}

我想这与控制器没有完全按照 JSON 期望的格式返回 JSON 有关。

4

3 回答 3

3

你得到一个字符串响应。

使用类似的东西

success: function (bbb) {
    var response  = jQuery.parseJSON(bbb);
    alert(response.Val13);
}

由于您使用的是 jQuery,因此您可以使用它jQuery.parseJSON来解析字符串。

于 2012-10-18T08:29:54.123 回答
1

您需要添加datatype: 'json'到您的 JQuery AJAX 请求。

尝试:

<script type="text/javascript">
var userName = $("#userName").val();

$.ajax({
    type: 'POST',
    datatype: 'json',
    url: '/Home/PgAJAXTest',
    data: {
        q: 'Test1',
        s: 'Test2'
    },
    success: function (bbb) {
        alert(bbb.Val13);
    },
    error: function (msg) {
        alert("error");
    }
});

</script>
于 2012-10-18T08:28:44.047 回答
0

试试这个

[HttpPost]
    public JsonResult PgAJAXTest(string q, string s)
    {
        return Json(new { Val13 = " TEST " }); 
    }
于 2012-10-18T08:27:43.390 回答