2010-02-11 34 views
1

我从一个普通ASP.NET C#页面访问母版的属性通过执行以下操作:如何从基类访问母版的财物或者其他功能文件

((SecondMasterPage)(Page.Master)).speciallink = true; 
((SecondMasterPage)(Page.Master)).specialspan = false; 

这工作在精细页面的代码隐藏,但是当我尝试将其移动到一个函数在我的基础类文件是这样的:

public class MyBaseClass : System.Web.UI.Page 
{ 
public void portalFuncs() 
{ 
    ((SecondMasterPage)(Page.Master)).speciallink = true; 
    ((SecondMasterPage)(Page.Master)).specialspan = false; 
} 
} 

...我收到以下错误信息:

编译器错误信息:CS0246:该无法找到类型或名称空间名称'SecondMasterPage'(您是否缺少使用指令或程序集引用?)

我的基类文件位于我的App_Code目录中,并且其中的其他函数可以正常工作。为什么这个功能不起作用?另外,如果像这个特定的函数不能在我的基类文件中工作,我可以在哪里放置它,以便可以从任何页面调用它?

回答

0

除非我遗漏了一些东西,否则您应该能够进入SecondMasterPage文件的代码隐藏,并检查它的名称空间。也许这个命名空间是不正确的或者与你想要的不同。

在您的基类中,使用using my.masterpage.namespace;语句使其工作。

+0

这似乎是一个奇怪的方式来做到这一点(或至少是我从未使用过的方式),但我尝试使用SecondMasterPage.masterpage.namespace添加 ; 这给了我以下错误: 编译器错误消息:CS1041标识符预期,'命名空间'是一个关键字。 – itsatrp 2010-02-11 01:48:15

+0

不,不,这是一个例子。使用您的母版页类中的实际名称空间,而不是字面上的“SecondMasterPage.masterpage.namespace”。 – womp 2010-02-11 01:52:24

+0

我建立这个网站的方式,我没有在主页代码后面声明的名称空间。我只是看起来像这样的一个类: 公共部分类SecondMasterPage:MyBaseClass {.....} – itsatrp 2010-02-11 02:06:43