开发者

meta tag in ASP.NET MVC 3

How can I put meta tag to work only for one page. If I开发者_StackOverflow中文版 want to put it .aspx file, where is right place.

Thanks.


Since you haven't said yet, I'm assuming you're using the Razor engine (the "default" for new MVC3 projects). In that case, you just need to insert a new section into your layout view, and only render that section if you need to insert a meta tag.

For example, working from the stock New ASP.NET MVC 3 Project template, you would edit your Views\Shared\_Layout.cshtml file, and before the closing </head> tag, do something like this:

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

Then, in any of your views that you needed to, add this:

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

If you're still using the ASPX layout engine for some reason, you can accomplish the same thing using the <asp:ContentPlaceHolder> tags in your master page and <asp:Content> tags in your views.

EDIT:

Since you're using the ASP.NET Forms layout engine still, here's the same basic idea as above in aspx syntax:

In your master page, you add the tag:

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

And in your .aspx views, you add a new content section (you should already have at least two -- a title and a body):

<asp:Content ID="Meta" ContentPlaceHolderID="MetaContent" runat="server">
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
</asp:Content>


I was going to suggest exactly what Michael said (+1). Another option would be to put a boolean in the ViewBag, something like:

ViewBag.ForceIE8Mode = true;

For pages that you want to force into IE8 Mode.

and then in your view, wrap the meta tag in a conditional. either

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

or

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜