在ASP.NET MVC中找到查找数据中的新(影片)对象

时间:2016-09-23 08:36:04

标签: c# asp.net-mvc asp.net-mvc-4 caching

我还是新人所以请耐心等待我。我看了,搜查过,用Google搜索过,但是我的大脑现在有点油炸了:(。

项目

一个简单的ASP.NET MVC项目,它使用搜索框在youtube和opendb上查找信息。正在收集此信息并将其放入我的电影对象中。

public ActionResult Search(string query)
        {
            movielist = new List<Movie>();
            TrailerApi _trailerapi = new TrailerApi();
            movielist.Add(_trailerapi.GetTrailerInformation(query));
            return View(movielist);
        }

不幸的是,我没有得到理想的结果。而是缓存不断填充新对象(空电影对象),我希望它继续添加对象。

我的欲望

我希望缓存我在缓存对象中找到的每个结果,并且能够首先在此缓存中查找我的电影,然后开始使用我的API。 因此,假设我首先寻找玩具故事,然后是功夫熊猫和最后一次星际迷航,我的缓存将包含所有3部电影。

我很确定这个人有我想要的东西,我喜欢他优雅的解决方案。

http://www.dotnetcurry.com/aspnet-mvc/1246/inmemory-caching-aspnet-mvc-6-core

但是因为我是一个菜鸟,我无法打开他的项目并得到这个错误 https://postimg.org/image/9z5u52vt5/

我尝试了什么

我创建了一个CacheHelper类

public static class CacheHelper
{
        public static object GetValue(string key)
        {
            MemoryCache memoryCache = MemoryCache.Default;
            return memoryCache.Get(key);
        }
        public static bool Add(string key, object value, DateTimeOffset expr)
        {
            MemoryCache memoryCache = MemoryCache.Default;
            return memoryCache.Add(key, value, absExpiration);
        }
        public static void Delete(string key)
        {
            MemoryCache memoryCache = MemoryCache.Default;
            if (memoryCache.Contains(key))
            {
                memoryCache.Remove(key);
            }
        }   
}

然后我尝试在我的控制器中执行此操作

      movielist = new List<Movie>();
       TrailerApi _trailerapi = new TrailerApi(); 
       movielist.Add(_trailerapi.GetTrailerInformation(query));
       CacheHelper.Add("movies", movielist, `DateTimeOffset.UtcNow.AddHours(1));                                      
       return View(movielist);

我的问题

  • 我怎样才能以干净的方式实现我的愿望?
  • 有没有其他方法可以实现这个目标?

0 个答案:

没有答案