2011-05-12 21 views
0

我試圖在我的控制器中實現條件獲取。前幾天我問了一個類似的問題,但幾乎沒有得到任何答案:Handle HTTP-Headers and status codes in controller 我以爲也許我沒有正確解釋自己,所以我給了一個新的嘗試。所以在這裏。從前端我做了一個很長的民意調查解決方案,我定期獲取數據。數據採用json格式。在我的控制器中,我返回結果集。我想要做的是檢查請求頭,以便如果自上次抓取後未修改,我不會再次獲取數據。這是我走到這一步:如何實現條件獲取?

public ActionResult Index() 
    { 

     var ifModifiedSince = Request.Headers["If-Modified-Since"]; 

      if(!String.IsNullOrEmpty(ifModifiedSince)) 
      { 
       Response.StatusCode = 304; 
       Response.StatusDescription = "304 Not Modified"; 
       Response.End(); 
       return new EmptyResult(); <--- not sure what I should return here. 
      } 
      else 
      { 
       return View("Index"); 

      } 

    } 

裸記住,這個我已經改了好幾次,我很疲憊所以migth這裏有一些明顯的錯誤。我正在從數據庫中獲取數據。我可能會宣稱數據顯示在Google地圖解決方案中。那麼有沒有人有任何建議?感謝任何指針。

問候

回答

0

有幾個類似的問題這個如果你正在尋找做一個長輪詢的解決方案。

Comet implementation for ASP.NET?

一般consenus是,它可能會非常棘手按比例繪製。

還有該實現示例

https://bitbucket.org/jacob4u2/mvcchatsite/src

+0

是的,我已經閱讀該線程的這一切似乎是很好的例子。我猜想,因爲我對MVC2並不熟悉,而且做了很長時間的輪詢解決方案,許多例子似乎都是過度的。當我讀到關於IIS的線程問題時,我們必須做一些工作。現在我們正在將數據推送給我們。正因爲如此,我製作了使用setTimeOut的ajax長輪詢解決方案。所以你認爲檢查請求標題不會訣竅? – Tim 2011-05-12 08:51:50