c# - JSON 响应字段未定义

标签 c# asp.net-mvc jquery razor

我按照此处的说明操作 Problem performing Ajax call from ASP.NET MVC2 app ,并阅读有关 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 Controller 代码是:

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

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

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

最佳答案

您将收到一个字符串响应。

使用类似的东西

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

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

关于c# - JSON 响应字段未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12950143/

相关文章:

c# - 从另一个表达式构建索引表达式

javascript - 在 Android 设备的移动浏览器上自动打开组合框

Jquery Mobile 面板样式问题

c# - UWP AppBar 颜色 c#

c# - 是否可以将 Azure 离线同步与 .Net Core 一起使用

c# - 如何将编码标签呈现为正确的 HTML,而不是文本?

jQuery 验证器和 bootstrap.js - 通知/错误

c# - 检查计算机是否通过 Wake On Lan 激活

c# - asp.net 在部分 View 中使用与其父 View 不同的模型?

c# - 如何创建 Outlook "internet calendar subscription"?