如何在 asp net mvc5 中为 tweetsharp 推特提要制作输出缓存

How to make Output cache for tweetsharp twitter feeds in asp net mvc5

我正在使用 tweetsharp nuget 包向我的网站添加推文。

我将部分视图放在页脚上,它在网站的所有页面上都可见。

这是我在 Basecontroller 上的代码。

public PartialViewResult _PartialView_twitter_feed()
    {
        var service = new TwitterService("key", "key");

        service.AuthenticateWith("key", "key");

        IEnumerable<TwitterStatus> tweets = service.ListTweetsOnUserTimeline(new ListTweetsOnUserTimelineOptions { ScreenName="my_screen_name", Count=5 });

        ViewBag.Tweets = tweets;

        return PartialView();
    }

我在页脚视图中这样称呼它。

 @Html.Action("_PartialView_twitter_feed", "base")

现在的问题是,如何在 asp net mvc 5 上为该实现进行输出缓存或某种缓存?

我不想在每个页面视图中一次又一次地调用 twitter api。因为局部视图在页脚上。

如何只制作一次并显示直到用户离开我的网站?

实现此目标的最佳做法是什么?

感谢您的帮助。

您可以使用 OutputCache 属性。希望以下示例对您有所帮助。

控制器

[OutputCache(Duration = 6000)]
public PartialViewResult Footer()
{
    return PartialView("Footer");
}

public ActionResult MainPage1()
{
    return View();
}

public ActionResult MainPage2()
{
    return View();
}

查看

MainPage1

<h2>MainPage1</h2>

@Html.Action("Footer")

MainPage2

<h2>MainPage2</h2>

@Html.Action("Footer")

当用户第一次访问 MainPage1 时,页脚部分视图将从服务器 return 获取。从第二次开始,它将 return 从缓存中取出。即使用户访问 MainPage2,页脚部分视图也会从缓存中 return。您可以根据您的要求增加持续时间秒数