我在常规 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 控制器可以检查其内容?