asp.net-mvc - 有没有一种方法可以在服务堆栈中缓存 Razor 页面?

标签 asp.net-mvc caching razor servicestack outputcache

我是 Service Stack 的新手,刚刚发现并且使用起来非常有趣。

我希望我 future 的网站非常有主干,但仍然确保它们大部分可以被谷歌索引并被使用 JavaScript 的人看到(更多用于谷歌索引)

我知道有内容缓存,例如列表等,可以在 Razor 页面上检索和切断。

但我没有看到任何文档方法涵盖在呈现后缓存整个 Razor 页面,我认为这是 OutputCache 属性在普通 ASP.NET MVC 3 上所做的。

因此,如果有人可以指导我使用服务堆栈缓存整个 Razor 页面的可能示例,或者可能的方法,我们将不胜感激。

谢谢

最佳答案

ServiceStack 中缓存 Razor/HTML View 通过使用 ToOptimizedResultUsingCache 以与所有其他格式相同的方式完成,例如:

public object Any(CachedAllReqstars request)
{
    if (request.Aged <= 0)
        throw new ArgumentException("Invalid Age");

    var cacheKey = typeof(CachedAllReqstars).Name;
    return RequestContext.ToOptimizedResultUsingCache(Cache, cacheKey, () => 
        new ReqstarsResponse {
            Aged = request.Aged,
            Total = Db.GetScalar<int>("select count(*) from Reqstar"),
            Results = Db.Select<Reqstar>(q => q.Age == request.Aged)
        });
}

此服务缓存任何请求格式的输出,包括。 HTML Razor View 。

关于asp.net-mvc - 有没有一种方法可以在服务堆栈中缓存 Razor 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15027732/

相关文章:

asp.net-mvc - Controller 实例上的 HttpContext 在 ASP.net MVC 中为空

javascript - 将数组从 MVC Controller 传递到 Jquery

javascript - 如何确保我的放大请求在返回值之前完成?

caching - 如何自动清理我的 $JBOSS_HOME/standalone/tmp 目录?

asp.net-mvc-3 - 为什么这段代码不删除布局?

c# - 将 Asp.net MVC5 Razor 代码存储在数据库中并处理以在运行时获取值

javascript - 如何通过 jquery 将单选按钮添加到 HTML 表格

html - ASP.NET MVC 中的自定义字体

actionscript-3 - AS3 重置 UrlLoader 缓存

c# - ASP.Net MVC - 如何在 html 标签内显示来自 View 模型的字符串?