asp.net-mvc - jQuery JsTree 和 JSON 错误处理

标签 asp.net-mvc json jstree

我正在使用 MVC 将 JSON 数据传递到 JsTree 并显示信息的分层 View 。 一切工作正常,但是,有时用户无权访问数据或由于某种原因 MVC 操作抛出异常:

在这些情况下,操作会传递 JSON 错误消息并将 HttpStatusCode 设置为 NotAcceptedInternalServerError

但是 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 statusCode 和错误,现在我需要弄清楚如何告诉 JsTree 停止等待并删除旋转图像!

我也在寻找一种在 JsTree 中显示错误的好方法,或者我应该在 JsTree 之外管理错误消息?

最佳答案

我已经解决了这个问题。

请注意 - 上面处理 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>"); }
            }
        }
    });

而在实际操作中,需要将http响应状态码设置为1并写入错误。例如

Response.StatusCode = 1
Response.Write("Error you want to go into jqXHR.responseText here");

享受吧:)

关于asp.net-mvc - jQuery JsTree 和 JSON 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8335986/

相关文章:

c# - 将 RDLC 数据源设置为对象的问题

asp.net - 困惑于在 Azure 部署的 Web.config 中存储密码的正确过程是什么

javascript - 包括 unobtrusive-ajax 使所有脚本停止工作

asp.net - 为什么ASP.NET JSON Web服务在 'd'中返回结果?

javascript - python3.5 aiohttp,请求post,json格式和405错误

ruby-on-rails - JSON 包含语法

javascript - Jstree - 如果在 Jstree 中检查了父节点,如何检查子节点?

javascript - 对象不支持属性或方法 'children' 在 JStree 中重命名节点时

jquery - 如何在 mvc4 web api 中使用 &lt;script&gt; 标签设置值?

javascript - jstree delete_node() 没有删除