2009-12-03 66 views
1

我使用本網站http://abeautifulsite.net/2008/03/jquery-file-tree/遞歸限制超出

一個jQuery Ajax控件我把它所有的工作。我試圖提出一個支持問題,但從來沒有聽到過,認爲也許有人在這裏可以瞭解情況。

基本上我想要做的是在文件選擇上運行一個返回JsonResult的動作,該動作給出關於該文件的更多細節,然後將它們顯示在容器中的屏幕上。當我調試時,該方法被擊中,返回正確的數據。在ajax調用返回後,我得到一個螢火蟲錯誤,說超過了遞歸限制。我不知道如何解決這個問題......我想我可以使用提供的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); 
     } 
+0

與螢火蟲什麼是你從服務器發送回來的json字符串? – PetersenDidIt 2009-12-03 19:26:07

回答

4

顯然返回一個FileInfo obj不是一個JsonResult接受。簡化回報,我將其更改爲:

return Json("helloWorld"); 

和我所有的問題都消失了。不知道爲什麼它在意我試圖返回一個FileInfo類型,但是當我改變它返回一個字符串時,任何一種方式問題都解決了。所以現在我只是創建一個小的包裝類來保存我想要傳回的數據,並且生活很好。

謝謝!希望這可以幫助別人。

+0

也一定要接受你自己的答案... – 2009-12-04 18:41:20