在Asp.Net中创建部分类

时间:2009-04-05 16:23:31

标签: c# asp.net partial-classes

我有一个小型的网络应用程序。

这就是我想要做的:创建部分类以分割文件后面的代码。 为什么我无法直接创建部分类?

如果这是代码隐藏文件:

using System;
using System.Configuration....


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

还要创建这个类:

public partial class _Default
{
    public void Test()
    {
    }
}

我收到一条错误消息,Test在当前上下文中不存在。

为什么会这样?

如果我创建了一些继承自System.Web.UI.Page的部分类,然后从此类继承我的代码隐藏文件(部分类的结果),那么我可以完成所有工作。这是唯一的方法吗?

是否与代码隐藏和aspx页面动态编译成类有关?

如果有人能回答我的问题,我将不胜感激。事情现在正在解决,但我更愿意在与代码隐藏相同的“级别”创建部分类,并避免使用继承。

谢谢你/约翰

(请注意,我在两个班级前面都有下划线,但预览中只能看到一个,我不知道为什么......)

3 个答案:

答案 0 :(得分:1)

1)将你的部分类放在app_code目录中(我从未尝试过这个)
2)将您的应用程序从网站项目转换为Web应用程序项目

WAP更像是一个dll或winforms项目,它在运行时之前编译(虽然ui可以更新)并将类放在命名空间中。网站项目使用aspnet_compiler编译,aspnet_compiler与标准编译器的操作方式不同(例如,动态命名的程序集)。

答案 1 :(得分:0)

如果它们不起作用,它们应该在同一名称空间中。

最诚挚的问候!

答案 2 :(得分:0)

奥基。好吧,这不是命名空间问题,但感谢你的建议。

当我创建一个Web应用程序而不是一个网站时,一切正常,非常感谢。

默认情况下,当我开始新项目时,我总是选择创建新网站,我之前从未遇到任何问题。

所以我当然要问除了上面提到的区别之外有什么区别?

总是使用Web应用程序项目而不是网站项目会有任何缺点吗?

谢谢你/约翰