ASP.NET MVC 视图和控制器输出缓存

Posted

技术标签:

【中文标题】ASP.NET MVC 视图和控制器输出缓存【英文标题】:ASP.NET MVC View and Controller Output Caching 【发布时间】:2010-10-25 09:50:03 【问题描述】:

使用输出缓存有什么区别

在视图中:

    <%@ Page Language="C#"
    Inherits="System.Web.Mvc.ViewPage<Mahmure.WebUI.ViewModels.NewsletterVM>" %>
    <%@ OutputCache Duration="120" VaryByParam="none" %>

在控制器中:

    [OutputCache(Duration = 120, VaryByParam = "none")]
    public ActionResult Index()
    

【问题讨论】:

区别在于视图级缓存与操作级缓存。 ASP.NET MVC 目前不完全支持前者。 【参考方案1】:

在 ASP.NET MVC 模型中,在控制器操作上使用属性更正确,因为 URL 不再由视图(就像在经典 WebForms 中那样)决定,而是由路由决定,并且控制器操作首先获得请求并决定是否从缓存中获取。

【讨论】:

以上是关于ASP.NET MVC 视图和控制器输出缓存的主要内容,如果未能解决你的问题,请参考以下文章

如何缓存将图像返回到asp.net mvc中的视图的操作方法的输出?

ASP.NET MVC 服务层输入输出数据

ASP.NET MVC 4 控制器扩展

asp.net mvc 在视图和控制器之间传递参数

ASP.NET MVC 如何链接视图和控制器?

过期输出缓存 ASP.Net MVC