1

我正在使用带有 jquery 1.5.2 的 asp.net mvc2。我假装是在我的控制器中对返回 json 数据的特定方法进行客户端调用。

实际上,我对服务器的客户端调用正在工作,但问题是 jquery 无法识别返回的 json。

我无法理解我做错了什么!有人可以帮我解决这个问题吗?

控制器方法:

<HttpPost()> _
Function DoStuff(ByVal id As Integer) As JsonResult
    Dim retval As JsonResult = Nothing

    retval = Json(New xpto With {.P1 = "P1Value"})

    Return retval
End Function

JQuery Ajax 调用:

    $.ajax({
        url: "/DoStuff/5",
        type: "POST",
        dataType: "json",
        async: false,
        success: function(data, textStatus, jqXHR) {
            alert(textStatus);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert(textStatus);
        }
    });

处理错误方法时的值:

errorThrown: jQuery1520029581770420782693_1303980789842 未被调用

文本状态:解析器错误

jqXHR.responseText = "{"P1":"P1Value"}"

4

1 回答 1

0

问题不在该代码中,它工作正常,问题是由标记上的 Sctipt 标记顺序生成的(验证)

错误的:

<script src="/Scripts/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui-1.8.11.custom.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.maskedinput-1.3.min.js" type="text/javascript"></script>

对:

<script src="/Scripts/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui-1.8.11.custom.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.maskedinput-1.3.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
于 2011-05-01T09:21:33.940 回答