2013-02-22 6 views
3

Я новичок в Service Stack, только что обнаруженный и выглядящий очень интересным для использования.Есть ли способ кэширования страницы Razor в Service Stack?

Я хотел бы мои будущие сайты, чтобы быть довольно позвоночник тяжелым, но все же гарантировать, что они в большинстве случаев могут быть проиндексированы Google и видел людей с JavaScript (больше для Google индексации)

Я знаю, что есть кэширование контента, например как списки и т. д., которые могут быть извлечены и разорваны на странице бритвы.

Но я не вижу каких-либо методов документации, охватывающих кэширование всей страницы бритву после того, оказывается, что то, что я считаю, OutputCache атрибут делает на нормальный ASP.NET MVC 3.

Так что, если кто-то может направить меня к возможным примерам целых страниц бритвы, кэшированных с использованием Service Stack, или возможный метод их выполнения.

Благодаря

ответ

1

Кэширование Бритва просмотров/HTML в ServiceStack делается таким же образом, как и любой другой формат, используя 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 Views.

+0

Ух ты, теперь это отличная функция, я не понимал, что она включает в себя HTML Razor Views. Просто для дальнейшего чтения вы могли бы предоставить мне страницу, на которой были указаны Razor Views. Но еще раз спасибо за быстрый ответ. – Flo

+0

На какой странице? HTML - это просто еще один Content-Type в ServiceStack, который работает так же, как и любой другой формат, разница в том, что вы можете дополнительно увеличить вывод HTML, добавив представление Razor с тем же именем, что и DTO запроса или ответа, в этом случае 'CachedAllReqstars. cshtml' или 'ReqstarsResponse.cshtml' в каталоге'/Views/'. – mythz

+0

Ах, круто, я понимаю, спасибо. – Flo