我的应用程序中有多个母版页。我制作了一个自定义类型并从中吸取所有母版页:
public class MyMaster : System.Web.UI.MasterPage
{
private int myno;
public int MyNo
{
get { return 50; }
set { myno = value; }
}
}
基本上myno在所有母版页中都很常见,母版页将在内容页面中发生变化。要添加此属性,我在内容页面中添加了:
<%@ MasterType TypeName=MyMaster %>
在页面上运行我遇到了主题错误。请指导我。
感谢
答案 0 :(得分:1)
如果您正在使用Web 站点,则通常应将派生的MasterPage类放在应用程序的App_Code文件夹中。当VS编译您的站点时,AppCode文件夹中的类将编译到站点的命名空间中,并可供应用程序的代码隐藏页面使用。
如果您正在使用Web 应用程序,您应该能够将类文件放在站点的根目录中,并直接从项目中任何其他页面的代码隐藏引用它,假设所有命名空间引用都是正确的。
另外,请确保您的班级文件的Build Action
设置为Compile
。您可以通过在解决方案资源管理器中选择类文件在属性窗口中进行检查。
答案 1 :(得分:0)
我刚遇到这个问题。
原来我的MasterPageFile
指令的Page
属性与我的TypeName
指令中的MasterType
不匹配。
换句话说,我为错误的母版页文件提供了TypeName。糟糕!
以下是问题的演示。
<%@ Page Title="" Language="VB" MasterPageFile="~/Departments/SomeMaster.master" AutoEventWireup="false"
CodeFile="ExamplePage.aspx.vb" Inherits="Departments_ExamplePage" Theme="Default" %>
<%@ MasterType TypeName="Departments_SomeOtherMaster" %>