2010-10-17 86 views
0

如何根據主頁面和內容頁面(動態)爲項目中的內容頁面添加標題和元標記?如何在基於主內容頁面(動態)的項目中爲內容頁面添加標題和元標記

我用下面的方法對母版頁:

public void SetMetaTags(string title, string description, string keywords) 
{ 

    // Get a reference to the HTML Head 
    HtmlHead headTag = (HtmlHead)Page.Header; 

    // Set the page title 
    headTag.Title = title; 

    // Add a Description meta tag 
    HtmlMeta metaTag = new HtmlMeta(); 
    metaTag.Name = "Description"; 
    metaTag.Content = description; 
    headTag.Controls.Add(metaTag); 

    // Add a Keywords meta tag 
    metaTag = new HtmlMeta(); 
    metaTag.Name = "Keywords"; 
    metaTag.Content = keywords; 
    headTag.Controls.Add(metaTag); 
} 

,所以我不知道爲什麼在內容頁Page_Load下面的代碼中有一個錯誤:

protected void Page_Load(object sender, EventArgs e) 
{ 
    MasterPage MyMasterPage = (MasterPage)Master; 

    // Error on this line: 
    MyMasterPage.SetMetaTags("Title", "description", "keywords"); 
} 

和誤差:

Error 17 'System.Web.UI.MasterPage' does not contain a definition for 
'SetMetaTags' and no extension method 'SetMetaTags' accepting a first argument of 
type 'System.Web.UI.MasterPage' could be found (are you missing a using directive 
or an assembly reference?) 
C:\Javad\---\AlmasAfzar\AlmasAfzar\AlmasAfzar\Products.aspx.cs 16 26 
AlmasAfzar 

感謝未來的提前

最好的問候

+0

您所看到的錯誤是什麼? (並在哪一行?) – 2010-10-17 17:48:34

回答

1

您需要轉換從Page.Master回是你的母版頁,而不是System.Web.UI.MasterPage類型的類型。

因此,如果與SetMetaTags方法你的母版頁類名爲MasterWithMetaTags,你的Page_Load代碼需要看起來像這樣:

protected void Page_Load(object sender, EventArgs e) 
{ 
    MasterWithMetaTags MyMasterPage = (MasterWithMetaTags)Master; 
    MyMasterPage.SetMetaTags("Title", "description", "keywords"); 
} 
0

沒有提到錯誤是什麼,我只能按照你所說的去做。我會確保你在你的aspx文件中有這樣的指令:

<%@ MasterType VirtualPath="PathToYourMasterFile" %> 
+0

謝謝4你的意志 - 我更新了我的問題... – LostLord 2010-10-17 18:47:03

0

您可以只使用Page.Header.Title的頁面標題。 這是我的。

#region meta tags and title 

       Page.Header.Title = dtArticleDetails.Rows[0]["title"].ToString(); 

       string Keywords = dtArticleDetails.Rows[0]["keywords"].ToString(); 
       string Description = dtArticleDetails.Rows[0]["description"].ToString(); 

       HtmlMeta keywordss = new HtmlMeta(); 

       HtmlHead head = (HtmlHead)Page.Header; 
       keywordss.Name = "keywords"; 
       keywordss.Content = Keywords; 
       head.Controls.Add(keywordss); 

       HtmlMeta desc = new HtmlMeta(); 
       desc.Name = "description"; 
       desc.Content = Description; 

       HtmlHead head2 = (HtmlHead)Page.Header; 
       head2.Controls.Add(desc); 

       #endregion 
相關問題