WebAPI HttpContext Cache - возможно ли это?
Я сделал следующее в моем обычном контроллере 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);
}
Причина, по которой я кеширую, заключается в том, что курсы загружаются в двух местах: модальный для выбора курса и индексное представление, в котором перечислены все курсы. Модал требует только JSON для рендеринга (извлечения данных из WebAPI), тогда как представление Index является представлением, генерируемым Razor (извлекается через контроллер MVC).
Я пытаюсь не запрашивать базу данных снова, если у меня уже есть данные курсов.
Приведенный выше код предназначен для представления индекса. Теперь для модального я должен отправить только JSON, но только если курсы еще не были загружены в представлении индекса.
Я попытался получить доступ к HttpContext из контроллера API, но он, кажется, не доступен таким же образом.Как я могу проверить HttpContext.Cache от контроллера WebAPI и заполнить его, если необходимо, чтобы контроллер MVC мог проверить его содержимое?