我正在使用来自此站点的 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/