Как изменить класс тела на странице просмотра MVC3 - PullRequest
7 голосов
/ 11 июня 2011

Просто хотел добавить class = "myClass" в теге body. Есть ли какой-нибудь помощник HTML или что-то еще может сделать это на странице просмотра MVC3? Пожалуйста, посоветуйте, спасибо.

Ответы [ 2 ]

16 голосов
/ 27 марта 2012

Это очень похоже на решение Аарона, но не имеет веса раздела (который, по крайней мере, на мой взгляд, предназначен для больших блоков контента, чем одна строка). Самый простой способ - передать переменную с помощью ViewBag.

В макете просто распечатайте класс для тега body, а также любые другие переменные, специфичные для страницы (заголовок страницы, дополнительные сценарии css / js и т. Д.) *

_Layout.cshtml:

<html>
    <title>@ViewBag.Title</title>@* Can easily add in per page titles too *@
    <body class="@ViewBag.BodyClass">
        @RenderBody()
    </body>
</html>

Затем переменные, установленные в вашем представлении, передаются в макет вверх:

Index.cshtml:

@model MyViewModel
@{
    ViewBag.Title = "This page title!";
    ViewBag.BodyClass = "...";
}
15 голосов
/ 27 марта 2012

Хотя у вас может быть полный контроль над HTML, решение было тем, что было необходимо, так что вот один; -)

На странице _layout.cshtml

<body class="@RenderSection("BodyClass", false)">

Это будет искать раздел на всех дочерних страницах, но говорит, что не волнуйтесь, если он не может найти один

Тогда в ваших дочерних представлениях просто сделайте это

@section BodyClass {productList}

Держите его в одной строке, и тогда выведенный HTML-код будет выглядеть хорошо, также вы можете затем создать имена классов.

@section BodyClass {productList generic}

Эта идея идеально подходит для кода, специфичного для DOM-Ready, почему бы не оформить заказ http://paulirish.com/2009/markup-based-unobtrusive-comprehensive-dom-ready-execution/

Или моя расширенная версия здесь https://github.com/AaronLayton/H5BP-Core

Мой способ позволяет вам создавать код, специфичный для каждой страницы, но позволяет хранить весь Javascript на отдельных страницах, чтобы каждая страница стала легко управляемой. Последний шаг - объединить и минимизировать все JS в 1 файл; -)

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