Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc jQuery JsTree和JSON错误处理_Asp.net Mvc_Json_Jstree - Fatal编程技术网

Asp.net mvc jQuery JsTree和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

我使用MVC将JSON数据传递给JsTree,并显示信息的层次视图。 一切正常,但有时用户无法访问数据,或由于某种原因MVC操作引发异常:

在这些情况下,操作会传递一条JSON错误消息,并将
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");