这个问题在这里已有答案:
使用Razor页面我在SQL查询的页面加载中使用包含键和值的C#列表填充了5个选择框
保存表单时,我需要再次获取这些列表中的键和值
因此,为了防止对SQL的更多查询,我希望在加载时将列表(键,值对)存储在内存中,以便稍后使用C#访问它
我怎样才能做到这一点?
我正在使用ASP.NET Core v2和C#
谢谢
托马斯
你可以使用IMemoryCache
在你的Startup.cs中
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMemoryCache();
}
}
在你的控制器中
public class HomeController : Controller
{
private IMemoryCache _cache;
public HomeController(IMemoryCache memoryCache)
{
_cache = memoryCache;
}
}
然后获取它
var cacheEntry = _cache.GetOrCreate("your-cache-key", entry =>
{
entry.SlidingExpiration = TimeSpan.FromMinutes(10);
// return your key/value list;
return new Dictionary<string,string>();
}
有关更多信息,请参阅In-memory caching in ASP.NET Core