c# - 超出递归限制

标签 c# jquery asp.net-mvc ajax

我正在使用来自此站点的 jQuery Ajax 控件 http://abeautifulsite.net/2008/03/jquery-file-tree/

我有这一切工作。我试图提出一个支持问题,但没有得到回复,我想也许这里有人可以阐明这种情况。

基本上我想做的是在文件选择上运行一个返回 JsonResult 的操作,它提供有关文件的更多详细信息,然后将它们显示在容器中的屏幕上。当我调试时,方法被命中,返回正确的数据。在 ajax 调用返回后,我在 Firebug 中收到一个错误,说超出了递归限制。我不确定如何解决这个问题......我想我可以使用提供的 fileTree(options, callback) 方法的回调,但是只有在文件树的初始化时选择文件时才会触发。有什么想法吗?

这是我通过 JavaScript 所做的

function initFileTree() {

    $('#fileTree').fileTree({ root: '/', script: '/Scripts/filetree/jqueryFileTree.aspx', multiFolder: false, expandEasing: 'easeOutBounce', collapseEasing: 'easeOutBounce' }, function(file) {

        getFileDetails(file);

    });

}

function getFileDetails(file) {

    // alert(file);

    $.getJSON('/Files.mvc/GetFileDetails', { Data: file }, function(data) {
        $('#fileDetail').html('<h6>Selected File: ' + data.Length + '</h6>');
    }, 'json');
}

这是我获取数据并返回 JsonResult 的操作

public virtual JsonResult GetFileDetails(string data)
        {
            string pageMessage = null;

            FileInfo fileInfo = null;

            try
            {
                fileInfo = new FileInfo(data);
            }
            catch (Exception e)
            {
                pageMessage = e.Message;    
            }

            return Json(fileInfo);
        }

最佳答案

显然返回 FileInfo 对象对于 JsonResult 是 Not Acceptable 。简化返回,我将其更改为:

return Json("helloWorld"); 

我所有的问题都消失了。不知道为什么它关心我试图返回一个 FileInfo 类型,但是当我将它更改为返回一个字符串时,无论哪种方式问题都解决了。所以现在我只创建了一个小的包装类来保存我想要传回的数据,生活很美好。

谢谢!希望这对其他人有帮助。

关于c# - 超出递归限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1841362/

相关文章:

javascript - JavaScript 事件处理的竞争条件?

.net - ASP.NET MVC 应用程序可供学习。

javascript - jQuery.validate 可能破坏了 Facebox 弹出窗口

c# - 打开Excel xlsx文件进行查看

javascript - 无法让 Angular 应用程序在 MVC 布局中工作

c# - 无法使用 C# 中的参数化查询在 MS Access 中插入数据

c# - 在 C# 中以最少的步骤重新排序元素集合

c# - 是否可以在仅具有公共(public)链接的容器中列出 Azure Blob?

c# - 如何确定完整的异步请求批处理是否失败?

php - 提交另一个表单时发布附加表单