¿Cómo cargar un modelo en _Layout.cshtml y compartirlo entre varias vistas?

Tengo un proyecto MVC4 que se ocupa de "Cursos". Muchas páginas a lo largo de la aplicación deben tratar con una lista de cursos: los perfiles de usuario deben mostrar la lista, la vista de índice para / Cursos debe mostrar la lista, etc.

Dado que estos datos casi siempre son necesarios, me gustaría cargarlos como parte de la solicitud inicial, por lo que solo tengo que consultar el DB una vez.

Imagino un escenario donde los datos se colocan en Layout.cshtml, y luego otras vistas pueden acceder a los datos del Modelo según sea necesario, aunque no veo una forma clara de lograrlo. Creo que puedo dividir el problema en dos partes:

Obtener los datos cargados en Layout.cshtmlAccede a estos datos desde otras vistas.

Estoy un poco atascado en ambos, ¿cómo puedo hacer que esto funcione?

Respuestas a la pregunta(3)

Su respuesta a la pregunta