我正在使用此网站http://abeautifulsite.net/2008/03/jquery-file-tree/
中的jQuery Ajax控件我把它全部都搞定了。我试着提出一个支持问题,但从未回复过,想到也许这里有人可以对这种情况有所了解。
基本上我正在尝试做的是,在文件选择上运行一个返回JsonResult的动作,它提供有关该文件的更多细节,然后将它们显示在容器中的屏幕上。在我调试时,该方法被命中,返回正确的数据。在ajax调用返回后,我在firebug中得到一个错误,说超过了recursionlimit。我不知道如何解决这个问题......我想我可以使用fileTree(选项,回调)方法提供的回调,但是在选择文件时不会触发文件树的初始化。有什么想法吗?
这是我通过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);
}
答案 0 :(得分:4)
对于JsonResult,显然不能接受返回FileInfo obj。简化回报,我将其改为:
return Json("helloWorld");
我的所有问题都消失了。不知道为什么它关心我试图返回一个FileInfo类型但是当我改变它以返回一个字符串时,问题解决了。所以现在我只创建一个小包装器类来保存我想要传回的数据并且生活很好。
谢谢!希望这有助于其他人。