Como carregar um modelo em _Layout.cshtml e compartilhá-lo entre vários modos de exibição?

Eu tenho um projeto MVC4 que lida com "Cursos". Muitas páginas em todo o aplicativo precisam lidar com uma lista de Cursos - os perfis de usuário precisam abrir a lista, a visualização de índice de / Cursos precisa puxar a lista, etc.

Como esses dados são praticamente sempre necessários, gostaria de carregá-los como parte da solicitação inicial, portanto, só preciso consultar o DB uma vez.

Eu imagino um cenário em que os dados são colocados em Layout.cshtml e, em seguida, outras visualizações podem acessar os dados do modelo conforme necessário, embora eu não veja uma maneira clara de conseguir isso. Eu acho que posso dividir o problema em duas partes:

Obter os dados carregados no Layout.cshtmlAcesse esses dados de outras visualizações

Estou um pouco preso em ambos - como posso fazer isso funcionar?

questionAnswers(3)

yourAnswerToTheQuestion