2010-03-11 48 views
0

下面的函數必須放在app_code文件夾中的常用函數文件中。我該怎麼做?如何在app_code的函數中設置頭標籤?

它給錯誤是這樣的: 參考非共享成員需要的對象引用

Public Sub setHeadTags(ByVal title As String, ByVal description As String, ByVal keywords As String) 

Dim metaDescription As HtmlMeta = DirectCast(Page.Master.FindControl("metaDescription"), HtmlMeta) 
Dim metaKeywords As HtmlMeta = DirectCast(Page.Master.FindControl("metaKeywords"), HtmlMeta) 
metaDescription.Attributes.Add("content", "My big content description") 
metaKeywords.Attributes.Add("content", "all, are, my, keywords") 
Dim pageTitle As HtmlTitle = DirectCast(Page.Master.FindControl("pageTitle"), HtmlTitle) 
pageTitle.Text = "Hey hey heY" 

結束子

+0

:)什麼是你的網頁? – Younes 2010-03-11 07:49:44

+0

頁面是使用一些主文件的某個頁面。 – John 2010-03-11 09:27:26

回答

0

您已引用的代碼中的非共享 構件和未能提供對象引用 。您不能 使用類名稱本身來限定未共享的 成員。 實例首先必須聲明爲 對象變量,然後由 變量名稱引用。

上找到:

http://msdn.microsoft.com/en-us/library/zwwhc0d0%28VS.80%29.aspx

+0

謝謝,但沒有一點幫助。 如何解決此問題的示例可能會有所幫助。 如果您正在app_code文件夾中的文件中編寫函數,並且函數必須設置/更改頁面的標題,那麼您將如何執行此操作? – John 2010-03-11 09:49:24

+0

對不起,我不知道如何幫助你。我認爲你應該使該功能能夠包含頁面。像:ByVal thePage As Page。我不知道如果你可以返回頁面,並在你的返回中有新的信息...我甚至不知道你是否有權訪問app_code目錄中的頁面對象。 – Younes 2010-03-11 10:05:25

0

你應該通過傳遞Page對象從那裏你調用該函數。更改您的代碼以將頁面作爲參數。

Public Sub setHeadTags(ByVal p as Page, ByVal title As String, ByVal description As String, ByVal keywords As String) 

Dim metaDescription As HtmlMeta = DirectCast(p.Master.FindControl("metaDescription"), HtmlMeta) 
Dim metaKeywords As HtmlMeta = DirectCast(p.Master.FindControl("metaKeywords"), HtmlMeta) 
metaDescription.Attributes.Add("content", "My big content description") 
metaKeywords.Attributes.Add("content", "all, are, my, keywords") 
Dim pageTitle As HtmlTitle = DirectCast(p.Master.FindControl("pageTitle"), HtmlTitle) 
pageTitle.Text = "Hey hey heY" 
End Sub 

當調用網頁中的方法通過發送頁面對象:

setHeadTags(me.Page,<rest of parameters here>) 
相關問題