我有一个小型的网络应用程序。
这就是我想要做的:创建部分类以分割文件后面的代码。 为什么我无法直接创建部分类?
如果这是代码隐藏文件:
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页面动态编译成类有关?
如果有人能回答我的问题,我将不胜感激。事情现在正在解决,但我更愿意在与代码隐藏相同的“级别”创建部分类,并避免使用继承。
谢谢你/约翰
(请注意,我在两个班级前面都有下划线,但预览中只能看到一个,我不知道为什么......)
答案 0 :(得分:1)
1)将你的部分类放在app_code目录中(我从未尝试过这个)
2)将您的应用程序从网站项目转换为Web应用程序项目
WAP更像是一个dll或winforms项目,它在运行时之前编译(虽然ui可以更新)并将类放在命名空间中。网站项目使用aspnet_compiler编译,aspnet_compiler与标准编译器的操作方式不同(例如,动态命名的程序集)。
答案 1 :(得分:0)
如果它们不起作用,它们应该在同一名称空间中。
最诚挚的问候!
答案 2 :(得分:0)
奥基。好吧,这不是命名空间问题,但感谢你的建议。
当我创建一个Web应用程序而不是一个网站时,一切正常,非常感谢。
默认情况下,当我开始新项目时,我总是选择创建新网站,我之前从未遇到任何问题。
所以我当然要问除了上面提到的区别之外有什么区别?
总是使用Web应用程序项目而不是网站项目会有任何缺点吗?
谢谢你/约翰