В настоящее время я работаю над веб-сайтом, которому требуется возможность перезаписать файл document.cshtml, чтобы я мог применить определенный CSS-класс на основе текущего местоположения пользователя.
Я пытался использовать альтернативы URL, такие как:
- Document.cshtml
- Document-url-AreaA.cshtml
- Документ-URL-AreaB.cshtml
- document.URL-AreaC.cshtml
однако, похоже, что все они используют Document.cshtml, а не один, основанный на URL. Я легко мог понять, что это целевое назначение, однако мне было интересно, можно ли реализовать описанные выше функции.
Обновление
Я полагаю, что, возможно, я добился определенного прогресса в этой области, в отличие от использования альтернатив URL и простого добавления поля в модели (для документа), чтобы просто перетащить текущую "область" сайта и применить это. класс для тела.
(В пределах document.cshtml)
@using Orchard.Mvc.Html;
@using Orchard.UI.Resources;
@{
RegisterLink(new LinkEntry {Type = "image/x-icon", ...});
string title = Convert.ToString(Model.Title);
string siteName = Convert.ToString(WorkContext.CurrentSite.SiteName);
//Pull the Area here
string area = Model.DesignatedAreaField;
}
<!DOCTYPE html>
<html lang="en" class="static @Html.ClassForPage()">
<head>
<meta charset="utf-8" />
<title>@Html.Title(title, siteName)</title>
@Display(Model.Head)
</head>
<body class='@area'>
//Body goes here
@Display(Model.Body)
@Display(Model.Tail)
</body>
</html>
Я считаю, что это может быть более простым решением, чем предложенное ранее. Однако мне интересно, каким был бы самый простой способ фактического размещения поля, к которому я мог бы получить доступ из модели документа.