asp.net部分类

时间:2010-11-12 07:25:04

标签: asp.net partial-classes

我想为单个aspx文件创建两个分部类。我正在使用vs2005 dotnet 2.0。我无法从另一个部分类中的一个部分类访问方法。

任何人都可以帮助我。

Partial class 1:我的主要aspx页面

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) { } 
    private void meth() { } 

} 

部分课程:2

public class _Default : System.Web.UI.Page 
{ 
    public _Default() { } 
} 

我无法访问部分类2中的meth方法

3 个答案:

答案 0 :(得分:3)

您应该对两个类声明使用partial修饰符,如下所示:

// Default.aspx.cs
public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) { } 
    private void meth() { } 
} 

// Default_Part2.aspx.cs
public partial class _Default : System.Web.UI.Page 
{ 
    public _Default() 
    { 
        meth();
    }
} 

在VS 2005中,可能还需要更新aspx文件的依赖项,可在此处找到:

http://aspnetresources.com/blog/partial_class_files_in_vs2k5

简而言之,使用纯文本编辑器打开项目文件,然后查找:

<Compile Include="Default_Part2.aspx.cs">
    <SubType>ASPXCodeBehind</SubType>
</Compile>

像这样添加你的文件:

<Compile Include="Default_Part2.aspx.cs">
   <SubType>ASPXCodeBehind</SubType>
   <DependentUpon>Default.aspx</DependentUpon>
</Compile>

我不知道这是否有效,因为我没有VS 2005来测试它。希望它有所帮助......

答案 1 :(得分:2)

您的第二堂课没有partial修饰符。

你需要:

public partial class _Default : System.Web.UI.Page 
{ 
    public _Default() { } 
} 

答案 2 :(得分:1)

* 关于部分类的事情: - *

所有部分定义必须以关键词“Partial”继续进行。 必须在同一个程序集和模块中定义所有属于同一类型的部分类型。 方法签名(返回类型,方法名称和参数)对于聚合类型(部分定义)必须是唯一的。 部分类型必须具有相同的可访问性。 如果任何部件是密封的,整个级别都是密封的。 如果任何部分是抽象的,那么整个类都是抽象的。 任何部分类型的继承都适用于整个类。