2011-05-12 68 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