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 мог проверить его содержимое?

Ответы на вопрос(1)

Ваш ответ на вопрос