我正在使用带有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);
}
});
Handles Error方法的值:
errorThrown:jQuery1520029581770420782693_1303980789842未被调用
textStatus:parsererror
jqXHR.responseText =“{”P1“:”P1Value“}”
答案 0 :(得分:0)
问题不在于该代码,工作正常,问题是由标记上的Sctipt标签顺序生成的(验证)
WRONG:
<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>
RIGHT:
<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>