0

我正在使用公共 LoginContext 类来管理我的网络应用程序中的用户登录。

不幸的是,即使我公开声明了 LoginContext 类,我在 Login.aspx.cs 的部分类 Login 似乎无法访问它。

我的代码如下:

// ~/App_Code/LoginContext.cs
namespace stman
{
    public class LoginContext
    {

    }
}

// ~/Login.aspx.cs
namespace stman
{
    public partial class Login : System.Web.UI.Page
    {
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            LoginContext log = new LoginContext(); // error is here
        }
    }
}

在我实例化 LoginContext 的行上出现的错误如下:

找不到类型或命名空间名称“LoginContext”(您是否缺少 using 指令或程序集引用?)

当我尝试为 LoginContext 生成一个新类时,它会进入 Web 应用程序的根文件夹,在那里它无法再访问我在 LoginContext 中需要的公共数据库类。

我不知道是什么导致了所有这些问题,但根据我在过去 18 个月的专业工作中学到的知识,它们现在不应该存在......

任何人都可以帮助清理这里的东西吗?具体来说,我想知道:

  1. 我做错了什么
  2. 为什么是错的
  3. 我可以修理谁?

提前致谢!

编辑
我看过了,似乎 ~/App_Code/Database.cs 中的 Database 类或 ~/App_Code/LoginContext.cs 中的 LoginContext 类都无法访问该页面 - 或网站中的任何页面。

4

4 回答 4

2

在 LoginContext.cs 属性中,将其标记为 BuildAction = Compile。

于 2013-06-12T11:49:34.290 回答
0

当这些类位于不同的项目中时,您可以实现此行为。

如果这是真的,那么您应该使用从项目名称开始的类的完整路径 ProjectName.stman.LoginContext

于 2013-06-12T11:29:14.033 回答
0

尝试使用构造函数

 namespace stman
{
// Database is a class that handles the sql queries and such
public class LoginContext : Database
{
    public LoginContext () : base("Name=LoginContext")
    {

    }
}
}
于 2013-06-12T11:29:37.667 回答
0

从我从 App_Code 中读取的内容来看,网站项目和 Web 应用程序中的行为可能会有所不同。我想知道你在做什么样的项目?一种可能的解决方案是在 Web 应用程序项目中制作此项目,此 链接可以帮助您制作此项目:

来源

于 2013-06-12T11:46:40.423 回答