asp.net mvc модифицирует главный файл из представления - PullRequest
3 голосов
/ 09 сентября 2010

Мне нужно добавить атрибут класса в тег body из файла представления (.aspx), но тег находится в основном файле. Как я могу получить доступ к тегу body из представления?

Ответы [ 2 ]

0 голосов
/ 09 сентября 2010

думаю, что более простое решение - просто установить заполнитель в master для атрибута class:

<body class='someOtherClass <asp:ContentPlaceHolder ID="BodyCssOverrides" runat="server" />' >

тогда в ваших взглядах просто установите правильный класс:

<asp:Content ContentPlaceHolderID="BodyCssOverrides" runat="server">yourBodyClass</asp:Content>

Нет необходимости сценариев для его установки или ViewData.

помните, что masterPage - это шаблон, который должен помочь вам, а не мешать вам, если что-то должно меняться между представлениями - сделайте для него placeHolder

0 голосов
/ 09 сентября 2010

В выводе вашего представления вы можете просто добавить клиентский скрипт jQuery , чтобы он выполнялся после запуска вашей страницы:

$('body').addClass('yourClass');

Другим методом будет сохранение данных класса в вашем контроллере, например:

ViewData["MasterPageBodyClass"] = "yourClass";

Тогда в вашем MasterPage представлении вы можете проверить наличие этого и добавить его, если оно существует:

<%
    string bodyClass = "";
    if (ViewData["MasterPageBodyClass"] != null)
    {
        bodyClass = "class=\"" + ViewData["MasterPageBodyClass"].ToString() + "\"";
    }
%>
<body <%= bodyClass %>>

Только действия контроллера, которые требовали присоединения класса к телу, фактически должны были бы хранить класс в ViewData, любое другое действие могло просто игнорировать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...