有人可以告诉我是否有推荐的方法将Meta信息添加到MVC3页面。我要添加的信息类型是标题,说明,关键字。
谢谢,
吉马
答案 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>