如何在MVC3页面中添加元描述和标题?

时间:2011-07-09 11:58:19

标签: asp.net-mvc

有人可以告诉我是否有推荐的方法将Meta信息添加到MVC3页面。我要添加的信息类型是标题,说明,关键字。

谢谢,

吉马

4 个答案:

答案 0 :(得分:6)

我会使用ViewBag作为标题,RenderSection作为其他主要内容。这包含在主布局文件(_Layout.cshtml)中:

<head>
    <title>@ViewBag.Title</title>
    @RenderSection("head", false);
</head>

在您的个人观看中,您将添加:

@{
    ViewBag.Title = "My Page Title";
}

@section head {
    <meta name="description" content="best site ever">
}

编辑:

请注意@section head {...}块是可选的。如果省略此块,则不会出现编译错误。在您想要提供元数据的视图上。

答案 1 :(得分:0)

我将其添加为单独的视图 - 这样您就可以调用:

@{Html.RenderAction("Head", "Header");}
从各种布局中

并呈现相同的正确标题数据。

HTH

答案 2 :(得分:0)

通常,在母版页中,我们放置一个ContentPlaceHolder控件,将其称为TitleContent,如下所示:

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

在儿童页面中:

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Some Title
</asp:Content>

对于Meta标签可以做同样的事情,或者你可以为HeadContent创建一个完整的ContentPlaceHolder并在每个页面中单独填充(title / meta ...)。

答案 3 :(得分:0)

您必须将元标记放在HTML的HEAD标记内。对于MVC应用程序,它取决于你有HEAD。它可以是布局的页面(* .cshmtl)(Layout.cshtml)。放置到布局中要好得多,因为元信息是通过其余页面共享的。

// *.cshtml

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
   <meta ... />
</html>
</head>