我想为单个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方法
答案 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”继续进行。 必须在同一个程序集和模块中定义所有属于同一类型的部分类型。 方法签名(返回类型,方法名称和参数)对于聚合类型(部分定义)必须是唯一的。 部分类型必须具有相同的可访问性。 如果任何部件是密封的,整个级别都是密封的。 如果任何部分是抽象的,那么整个类都是抽象的。 任何部分类型的继承都适用于整个类。