我试图从内容页面访问母版页属性,以便我可以轻松地在母版页文件上设置文字。所以我在Masterpage vb文件中以这种方式创建了母版页属性
Public Property PropertyOnMasterPage() As String
Get
' Get value of control on master page
Return ltr_companyname.Text
End Get
Set(ByVal value As String)
' Set new value for control on master page
ltr_companyname.Text = value
End Set
End Property
但我不知道如何从内容页面获取或设置此属性。(基于on this tutorial)。 多数民众赞成在C#。但是当我尝试师父的时候。 intellisense没有显示母版页属性。那么如何在contetn页面上获取母版页属性。是否需要在内容页面上引用任何内容?
修改
这些是主页面和内容页面截图..在内容页面截图中,您可以看到intellisense没有找到该属性
内容页面
母版页
答案 0 :(得分:2)
您缺少的是您需要从内容页面设置MasterType
,以便知道母版页是哪个类。然后它将是强类型的,不需要投射它。
将它放在你的@ Page
指令下面,显然有正确的主页路径。
<%@ MasterType VirtualPath="~/masters/SourcePage.master" %>
答案 1 :(得分:1)
在C#中您可以使用此.Master访问页面母版页 我想你应该有Me.Master
所以在内容页面中你最终会像这样
Me.Master.PropertyOnMasterPage
答案 2 :(得分:0)
我对主页的强类型引用没有好运,所以我通常做的是创建一个接口:
Public Interface IMyMaster
Property PropertyOnMasterPage As String
End Interface
在您的母版页文件中,实现它:
Public Class SiteMaster
Inherits MasterPage
Implements IMyMaster
Public Property PropertyOnMasterPage As String Implements IMyMaster.PropertyOnMasterPage
End Class
然后将Me.Master引用转换为接口,并访问属性,如:
CTYpe(Me.Master, IMyMaster).PropertyOnMasterPage
无论如何,界面增加了一个更松散的耦合。