Я пытаюсь поделиться данными из моего основного _Layout с представлениями, отображаемыми RenderBody.
Я пытался использовать ViewBag, инициализированный в «Shared / _Layout», но он не работает. Тем не менее, я заметил, что этот ViewBag можно использовать в партиалах, но не в представлениях, отображаемых @ RenderBody.
Пример _Layout:
PageData["XX"] = "myValue";
ViewContext.Controller.ViewBag.XX= "myValue";
Page.XX= "myValue";
ViewBag.XX= "myValue";
ViewContext.ViewData["XX"] = "myValue";
<body>
@Html.Partial("_MyPartial") // Everything has the correct value in the partial
<main class="content">
@RenderBody() // Everything is null in that view
</main>
</body>
Я пытался использовать ViewBag.Property, ViewData ["Property"], Page.Property и PageData ["Property"], но все они равны нулю в представлении, отображаемом RenderBody.
Кажется, потому что Layout - последний скомпилированный элемент.
Я не хочу использовать какой-либо код. Все должно быть в поле зрения, сделать что-то похожее на мой пример выше. Это должно быть в макете, потому что значение, которым я хочу поделиться, определяется пользователем через CMS. Это означает, что этот макет используется статической страницей, а также представлениями, отображаемыми контроллером.
У меня такой вопрос: как я могу передать / поделиться данными из _Layout для моих представлений, представленных RenderBody ()?