【发布时间】:2013-09-25 05:06:50
【问题描述】:
我在常规 MVC 控制器中完成了以下操作:
public ActionResult GetCourses()
{
List<Course> courses = new List<Course>();
if (this.HttpContext.Cache["courses"] == null)
{
courses = _db.Courses.ToList();
this.HttpContext.Cache["courses"] = courses;
}
else
{
courses = (List<Course>)this.HttpContext.Cache["courses"];
}
return PartialView("_Courses", courses);
}
我缓存的原因是因为课程加载在两个地方 - 一个用于选择课程的模式和一个列出所有课程的索引视图。 modal 只需要 JSON 来呈现(从 WebAPI 拉数据),而 Index 视图是 Razor 生成的视图(通过 MVC 控制器拉)。
如果我已经拥有 Courses 数据,我会尝试不再查询数据库。
以上代码用于索引视图。现在,对于模态,我只需要发送 JSON,但前提是课程尚未加载到索引视图中。
我尝试从 API 控制器访问 HttpContext,但似乎无法以相同的方式访问它。 如何从 WebAPI 控制器检查 HttpContext.Cache,并在需要时填充它以便 MVC 控制器检查其内容?
【问题讨论】:
-
你试过HttpRunTime.Cache stackoverflow.com/questions/863654/…
标签: asp.net-mvc asp.net-mvc-4 caching asp.net-web-api