Asp.net mvc jQuery JsTree和JSON错误处理
我使用MVC将JSON数据传递给JsTree,并显示信息的层次视图。 一切正常,但有时用户无法访问数据,或由于某种原因MVC操作引发异常: 在这些情况下,操作会传递一条JSON错误消息,并将Asp.net mvc jQuery JsTree和JSON错误处理,asp.net-mvc,json,jstree,Asp.net Mvc,Json,Jstree,我使用MVC将JSON数据传递给JsTree,并显示信息的层次视图。 一切正常,但有时用户无法访问数据,或由于某种原因MVC操作引发异常: 在这些情况下,操作会传递一条JSON错误消息,并将HttpStatusCode设置为NotAccepted或InternalServerError 然而,jsTree的罪人一直在旋转,我似乎没有找到方法让它停止并显示错误消息 以前有人解决过这个问题吗?在使用JsTree的JSON数据插件时,如何进行错误处理 更新: 我找到了捕获错误的方法: $("#jst
HttpStatusCode
设置为NotAccepted
或InternalServerError
然而,jsTree的罪人一直在旋转,我似乎没有找到方法让它停止并显示错误消息
以前有人解决过这个问题吗?在使用JsTree的JSON数据插件时,如何进行错误处理
更新:
我找到了捕获错误的方法:
$("#jstree1").jstree({
"json_data": {
"ajax": {
"url": serviceUrl,
"data": function (n) {
return { pid: n.attr ? n.attr("id") : "" };
},
"error": function (x, s, r) { var err = $.parseJSON(x.responseText); if (err!="") { alert(err); } }
}
}
看来JsTree确实得到了MVC http状态码和错误,现在我需要弄清楚如何告诉JsTree停止等待并删除微调器映像
我还在寻找一种在JsTree中显示错误的好方法,还是应该在JsTree之外管理错误消息 也许您应该在.jstree上面的一层研究如何处理此错误。也许通过处理window.onerror事件可以实现这一点。在这里你可以调用一个函数来重建树或者其他什么?请确保将此脚本作为第一个脚本包含在页面中
<script type="text/javascript">
window.onerror = function(x, s, r){
alert('An error has occurred!')
}
</script>
window.onerror=函数(x,s,r){
警报('发生错误!')
}
我已经解决了这个问题
请注意-上面处理ajax调用错误的代码示例不正确,请参阅下面的完整示例:
$('#YourTree').jstree({
"json_data": {
"ajax": {
"url": "/Controller/Action",
"data": function () {
return { Parameter1: "Value1", Parameter2: "Value2" }
},
"type": "POST",
"dataType": "json",
"error": function (jqXHR, textStatus, errorThrown) { $('#YourTree').html("<h3>There was an error while loading data for this tree</h3><p>" + jqXHR.responseText + "</p>"); }
}
}
});
享受:)进一步发现,有可能捕获错误。我需要一个答案:)这正是我所寻找的。谢谢我发现覆盖整个树的内容会阻止树在将来的刷新中工作。相反,我调整了树中的内容以显示错误消息并删除加载文本,jstree会在后续刷新中正确替换这些文本:
$('YourTree.jstree-loading').removeClass('jstree-loading').find('jstree-anchor').html('error:'+jqXHR.responseText)代码>
Response.StatusCode = 1
Response.Write("Error you want to go into jqXHR.responseText here");