Как запросить данные и отобразить их на странице общего макета (_layout.cshtml)?

#asp.net #entity-framework-core #razor-pages

#asp.net #entity-framework-core #razor-страницы

Вопрос:

Я попробовал руководство https://learn.microsoft.com/en-us/aspnet/core/data/ef-rp/intro?view=aspnetcore-3.1amp;tabs=visual-studio

И я могу отображать данные на страницах Razor с моделью страницы.

Однако, когда я пытался найти способы отображения имени учащегося вверху, используя страницу общего макета Shared_layout.cshtml, я заблудился и хотел бы попросить вашего совета о том, как я мог бы запросить данные у объекта Student и отобразить только одно имя на странице общего макета.

Я чувствовал себя потерянным, потому что нет модели страницы для страницы общего макета.

Примечание: Я новичок в разработке приложений, поэтому надеюсь, что вы могли бы дать некоторые рекомендации, чтобы просветить меня. Любая хорошая учебная ссылка также была бы отличной 🙂

Ответ №1:

Вы можете использовать ViewBag для отображения имени учащегося вверху.

Добавьте ViewBag во все ваши методы действий, где вы возвращаете view как возвращаемый тип из файлов контроллера.

 ViewBag.StudentName = "Yiwen";
  

Используйте это в вашем файле общего макета.

 @ViewBag.StudentName
  

Вы можете увидеть ссылку Microsoft о том, как использовать ViewBag.

Комментарии:

1. @YiwenLee, Пожалуйста, прими это как ответ и подними голос, если это тебе помогло.

2. Я считаю, что ViewBag и ViewData похожи, но они не решали проблему, с которой я столкнулся. Я хотел бы запросить конкретные данные из существующих записей в базе данных SQL, например, последнюю сохраненную запись имени учащегося. Итак, какие еще методы я мог бы использовать для запроса имени студента на основе определенного идентификатора студента, а затем отобразить на странице общего макета. Другая проблема, с которой я столкнулся, — сделать то же самое, чтобы отобразить то же конкретное имя учащегося на домашней странице.