метатег в ASP.NET MVC 3 - PullRequest
       6

метатег в ASP.NET MVC 3

2 голосов
/ 27 сентября 2011

Как сделать так, чтобы метатег работал только на одной странице.Если я хочу поместить его в файл .aspx, где находится правильное место.

Спасибо.

Ответы [ 2 ]

8 голосов
/ 27 сентября 2011

Поскольку вы еще не сказали, я предполагаю, что вы используете движок Razor («по умолчанию» для новых проектов MVC3). В этом случае вам просто нужно вставить новый раздел в представление макета и отображать этот раздел, только если вам нужно вставить метатег.

Например, работая со стандартным шаблоном проекта ASP.NET MVC 3, вы должны отредактировать файл Views\Shared\_Layout.cshtml, а перед закрывающим тегом </head> сделать что-то вроде этого:

    @this.RenderSection("MetaContent", false)
</head>

Затем, в любом из ваших представлений, которые вам нужны, добавьте:

@section MetaContent
{
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
}

Если по какой-то причине вы все еще используете механизм компоновки ASPX, вы можете сделать то же самое, используя теги <asp:ContentPlaceHolder> на главной странице и теги <asp:Content> в представлениях.

EDIT:

Поскольку вы по-прежнему используете механизм компоновки ASP.NET Forms, вот та же основная идея, что и в синтаксисе aspx выше:

На главной странице вы добавляете тег:

    <asp:ContentPlaceHolder ID="MetaContent" runat="server" />
</head>

И в ваших представлениях .aspx вы добавляете новый раздел контента (у вас должно быть уже как минимум два - заголовок и тело):

<asp:Content ID="Meta" ContentPlaceHolderID="MetaContent" runat="server">
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
</asp:Content>
0 голосов
/ 27 сентября 2011

Я собирался предложить именно то, что сказал Майкл (+1).Другой вариант - поместить логическое значение в ViewBag, например:

ViewBag.ForceIE8Mode = true;

Для страниц, которые вы хотите перевести в режим IE8.

и затем, по вашему мнению, обернуть метатег в условном.либо

@if(ViewBag.ForceIE8Mode == true) {
    <meta... />
}

, либо

<% if(ViewBag.ForceIE8Mode == true) { %>
    <meta... />
<% } %>
...