Передача данных из Middleware в _Layout View - PullRequest
1 голос
/ 24 июня 2019

У моего приложения asp.net-core есть боковая панель в _Layout.cshtml. Боковая панель динамически, поэтому мне нужны PageData. Я попытался передать PageData из моего PagesMiddleware в View (я не хочу пересылать PageData в каждом контроллере для View).


Не хочу этого: [PagesMiddleware] -> Controller -> _Layout.cshtml

PagesMiddleware: context.Items.Add("pages", pages);

каждый контроллер: ViewData["Pages"] = TempData["pages"];

_Layout: @ViewData["Pages"]


Есть ли что-то вроде этого: [PagesMiddleware] -> -> _Layout.cshtml

PagesMiddleware: ViewData["Pages"] = pages;

_Layout: @ViewData["Pages"]


PageData может быть строкой. Как передать строку из Middleware в _Layout View без лишнего (избыточного) кода на всех контроллерах?

1 Ответ

1 голос
/ 24 июня 2019

Согласно комментарию к сообщению, объект HttpContext всегда доступен из вида Razor

Middleware

context.Items.Add("pages", pages);

Вид

@{
    var pages = Context.Items["pages"];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...