В последнее время, когда я создавал свои приложения mpc asp.net, у меня, как правило, было несколько элементов, которые постоянно нужно рассчитывать, форматировать и настраивать на моих главных страницах.Вот некоторые из этих элементов:
- Мне нравится прикреплять определенные классы к тегу body, как это делает WordPress, чтобы помочь моему CSS.Я обычно прикрепляю название действия, контроллер, шаблон страницы и т. Д.
- Мне нравится работать с пользовательским идентификатором в моих главных страницах.Это удостоверение включает в себя удобное для пользователя отображаемое имя, идентификатор пользователя, имя пользователя и т. Д.
- и т. Д. ... в зависимости от проекта
То, как я это делал, развивалось так:Что ж.Я начал с отправки ViewData вместе с каждым результатом действия, чтобы заполнить вещи на главной странице.пример ->
// in the action
ViewData["BodyClasses"] = "index home default";
ViewData["UserData"] = userData;
return View();
// in the master page
<% UserData userData = (UserData)ViewData["UserData"] %>
...
<body class="<%= (string)ViewData["BodyClasses"] %>">
Это было ужасно.Поэтому я начал размещать некоторые переменные в верхней части своих главных страниц и заполнять их на основе объектов, с которыми нам приходится работать на главной странице.пример ->
<%@ Master Language="C#" Inherits="System.Web.MVC.ViewMasterPage" %>
<% string controller = ViewContext.RouteData.Values["controller"].ToString().ToLower();
string action = ViewContext.RouteData.Values["action"].ToString().ToLower();
CustomIdentity identity = (CustomIdentity)User.Identity %>
...
<body class="no-js <%= controller + " " + action %>">
Это лучше, но я чувствую, что должно быть более простое решение.Я начал играть с созданием пользовательского ViewMasterPage и добавлением некоторых общедоступных свойств.Кто-нибудь еще делает это с главной страницей или есть другое решение, которое я полностью упускаю?