2012-05-01 99 views
1

這種情況,我在同一頁面上向控制器發出多個ajax/json請求,該控制器返回一個JsonResult。MVC3應用程序中的多個AJAX請求

我知道這是會話狀態的一個問題,我在我的控制器類中添加了[SessionState(SessionStateBehavior.Disabled)]屬性,但似乎沒有任何工作,我的第二個Ajax請求只是不會得到返回數據。

控制器:

[SessionState(SessionStateBehavior.Disabled)] 
public class IndexController : Controller 
{} 

兩個JSON方法:

[AcceptVerbs(HttpVerbs.Get)] 
    public JsonResult GetLatestListJSON() 
    { 
     Thread.Sleep(5000); 
     ArticleRepository repo = new ArticleRepository(); 
     IList<ArticleModel> list = repo.GetLatestContent(10); 

     return Json(list, JsonRequestBehavior.AllowGet); 
    } 

    [AcceptVerbs(HttpVerbs.Get)] 
    public JsonResult GetCustomerJSON() 
    { 
     Thread.Sleep(5000); 
     CustomerRepository Repo = new CustomerRepository(); 
     IList<Customer> cust= Repo.GetCustomer(); 

     return Json(cust, JsonRequestBehavior.AllowGet); 
    } 

第二 Ajax調用,另外一個是非常相似的,我從來沒有看到 '更迭' -警報。

<script type="text/javascript"> 
     $(document).ready(function() { 
      alert('before');    

      $.getJSON("/Index/GetCustomerJSON", null, function (data) { 
       alert('succes'); 
       $("#loadingGifVideo").hide(); 
       $.each(data, function (index, mod) {       

       }); 
      }); 
     }); 

謝謝你們:)

+0

爲什麼在你的兩個Controller方法中都有Thread.Sleep()調用? –

+0

這是我試過的解決方案的一部分。我猜不再相關。 – NeedACar

回答

0

如果你把一個破發點中的GetCustomerJSON方法,並在Visual Studio中運行但這方法不斷被調用? 它確實

編輯

嘗試從的getJSON切換到AJAX方法,這樣你可以捕獲任何錯誤。像這樣:

$.ajax({ 
    url: "/Index/GetCustomerJSON", 
    dataType: 'json', 
    data: null, 
    success: function (data) { alert('success'); } 
    error: function (data) { alert('error'); } 
}); 

您是否收到「錯誤」警報?

+0

是的,GetCustomerJSON確實被調用:) – NeedACar

+0

編輯我的答案。 –

+0

是的,我試過了,我得到了錯誤信息 – NeedACar