У меня есть определенное свойство ViewBag, которое я хотел бы установить на уровне ViewStart. В идеале я хотел бы, если это необходимо, переопределить это свойство на странице. Это возможно? Если да, как мне получить доступ к свойству ViewBag на странице ViewStart?
Как установить свойства ViewBag на _ViewStart.cshtml?
Ответ 1
Есть два способа сделать это:
-
Используйте свойство
PageData
(это нечто более применимое к веб-страницам ASP.NET и редко используется в MVC)-
Set:
@{ PageData["message"] = "Hello"; }
-
Получить
<h2>@PageData["message"]</h2>
-
-
Попробуйте найти экземпляр представления (код немного грязный, но он дает вам доступ непосредственно к
ViewBag
/ViewData
-
Set:
@{ var c = this.ChildPage; while (c != null) { var vp = c as WebViewPage; if (vp != null) { vp.ViewBag.Message = "Hello1"; break; } c = c.ChildPage; } }
-
Извлеките: как обычно
<h2>@ViewBag.Message</h2>
-