2009-04-15 76 views
1

我有一个母版,并得到其类型如下:ASP.NET - 倾斜的GetType()母版

alt text http://www.yart.com.au/stackoverflow/masterpage.png

没问题,这个工作

现在,当我创建一个aspx页面并尝试同样的事情,我得到空:

alt text http://www.yart.com.au/stackoverflow/page.png

为什么?

我该如何得到这个工作?

注意

下面的答案说,我需要引用的大会。 但是我怎么做,当我运行这个应用程序作为一个ASP.NET网站 - 这里有编译的DLL。

回答

1

Type.GetType(string)需要组件限定的类型名称。

+0

我没有明确的汇编,只是一个ASP.NET网站。我应该如何参考组件? – Petras 2009-04-15 13:22:48

4

发生这种情况的原因是因为您正在编译每个页面,因为您正在使用网站而不是Web项目。

因此,每个页面是一个单独的组件,不知道另一个。如果您想使用GetType,我会建议更改为Web项目,以使您的生活更轻松。

+0

+1。我从未理解这两者之间的区别。 – 2009-04-15 14:46:40

2

在标记为您的aspx页面,您可以指定要使用像这样的母版页类型:

<%@ MasterType VirtualPath="~/MasterPage.master" %> 

在任何情况下,你可以回来从像调用获取当前母版页的类型这在您的代码隐藏:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Type t; 
    t = this.Master.GetType(); 
} 
+0

上面这个可能工作,但在我的实际问题中,MasterPage没有被aspx – Petras 2009-04-15 22:14:09

+0

使用好吧,也许最好是如果你解释为什么你需要引用母版页,那么如果它没有被该页使用?可能有另一种更简单的方法来实现你正在尝试做的事情。 – 2009-04-16 08:00:27