Каждая страница на моем сайте должна иметь одни и те же данные, аналогично тому, как в SO каждая страница отображает информацию о текущем пользователе в верхней части страницы. Способ, которым я реализовал это, должен был иметь базовый класс контроллеров, из которого все мои контроллеры происходят. В конструкторе этого базового контроллера я поместил свою модель в ViewBag, а затем моя страница макета использует это.
У меня проблемы с этим, потому что мои макеты не сильно напечатаны. Например, я должен создать новый HtmlHelpers на странице макета:
@{var layoutHtml = new HtmlHelper<LayoutModel>(Html.ViewContext, Html.ViewDataContainer); }
@* OK, now we can use the html helper... *@
@layoutHtml.TextAreaFor(model => model.Feedback)
Я действительно не хочу иметь свой подкласс моделей из модели макета, поскольку это заставит каждое действие заполнять данные совместно используемой модели по отдельности, но создание HtmlHelpers вручную также кажется плохой идеей.
Есть мысли?