超出递归限制

Gab*_*abe 1 c# ajax asp.net-mvc jquery

我正在使用来自该站点的 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');
}
Run Code Online (Sandbox Code Playgroud)

这是我获取数据并返回 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);
        }
Run Code Online (Sandbox Code Playgroud)

Gab*_*abe 5

显然,对于 JsonResult 来说,返回 FileInfo obj 是不可接受的。简化返回,我将其更改为:

return Json("helloWorld"); 
Run Code Online (Sandbox Code Playgroud)

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

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