我正在尝试为ASP.NET中的MasterPage创建基类,以便继承结构如下:
System.Web.UI.MasterPage
-> BaseMasterPage
-> SiteMasterPage
BaseMasterPage
将仅提供一些方法和属性,这些方法和属性在站点上的多个母版页中将是相同的,因此我认为在这里具有基类是有意义的。
来源here和here暗示我试图做的事情可能是Page
类的子类,但我似乎无法使其正常工作,我我想知道关于MasterPage
的事情是否阻止我这样做。
这就是我所拥有的:
Base.Master.vb(在App_Code
文件夹中)
Public Class BaseMasterPage
Inherits System.Web.UI.MasterPage
End Class
Site.Master.vb(在名为Master
的文件夹中)
Public Class SiteMasterPage
Inherits GSHolidays.BaseMasterPage
End Class
Site.master的第一行(也在Master
中)
<%@ Master Language="VB" AutoEventWireup="true" CodeFile="Site.master.vb" CodeFileBaseClass="GSHolidays.BaseMasterPage" Inherits="GSHolidays.SiteMasterPage" %>
为了方便起见,我已经修改了类名,并从类中删除了内容。 GSHolidays
名称空间是项目文件中定义的默认名称。
这是我遇到的错误:
在浏览器中(当导航到使用SiteMasterPage的页面时):
在此问题上进行了一些谷歌搜索,使我添加了CodeFileBaseClass
属性(我最初没有包含该属性),该属性似乎并没有解决问题,但是在Visual Studio中添加了另一个属性-
我似乎无法在线找到有关此错误的任何信息,而且无论我做什么,该信息似乎都不会消失(除非我删除了CodeFileBaseClass
属性。
我真的不确定从这儿去哪里,所以我希望你们中的一个能帮助我。我很抱歉这个问题很长,尽管希望这个问题很简单,并且有人可以指出正确的方向。预先感谢!