2010-10-02 122 views
3

我有一個母版頁目前與下面的標題:如何在主頁上添加meta標籤用於ASP.Net MVC 2

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

現在我已經意識到我必須把meta標籤中,是否會像這樣來做得最好:

<asp:ContentPlaceHolder ID="TitleContent" runat="server"> 
<title>Title</title> 
<meta name="Description" content=" ... add description here ... "> 
<meta name="Keywords" content=" ... add keywords here ... "> 
</asp:ContentPlaceHolder> 

OR

<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title> 
<meta name="Description" content="<asp:ContentPlaceHolder ID="descContent" runat="server" />"> 
<meta name="Keywords" content="<asp:ContentPlaceHolder ID="keysContent" runat="server" />" 

回答

4

是的,你也可以通過添加另一個ContentPl頁面添加特定元標記aceHolder的meta標籤:

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

然後在您的非主網頁(如的Index.aspx),你可以只

<asp:Content id="MetaTags" ContentPlaceHolderID="MetaTagsContent" runat="server"> 
    <meta name="Description" content="your content" /> 
</asp:Content> 

這將是更容易,在我看來,要控制meta標籤

1

你不一定要用這些東西來填充所有的視圖,這就是爲什麼你有一個母版頁。 我會做這樣的:

中的Site.Master

<% Html.RenderPartial("meta"); %> 

在meta.ascx

<% 
    string controller = ViewContext.RouteData.Values["Controller"]; 
    string action = ViewContext.RouteData.Values["Action"]; 
    string content = "default description"; 
    if(controller == "Home") content = "home specific"; 
    //or like this 
    if(controller == "Home" && action == "Index") content = "bla bla"; 
//this way you can put the same description for a specific group, you decide 
    %> 
    <meta name="Description" content='<%=content %>' />