ASP.NET无法引用类

时间:2011-01-26 12:39:37

标签: c# asp.net web-site-project

我已将CS文件移出App_Data文件夹,因为我遇到了重复版本的错误,一个在运行时编译时编译一次,所以我被告知将它们移出该文件夹。

两个文件,Default.aspx.cs

namespace CrystalTech
{
    public partial class newVersion_Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            LoginInitialiser loginData = new LoginInitialiser();
            loginData.loadData();
        }
    }
}

和Security.cs

namespace CrystalTech
{
    // Handles all our login logic
    public class LoginInitialiser
    {
        public bool isLoggedIn { get; private set; }

        public LoginInitialiser()
        {
            this.isLoggedIn = false;
        }

        // Fetches the users data
        public void loadData()
        {
            if (HttpContext.Current.Session["loggedIn"] != null)
            {
                this.isLoggedIn = (bool)HttpContext.Current.Session["loggedIn"];
            }

            // Fetch the data if we are logged in
            if (this.isLoggedIn)
            {

            }
            // Otherwise redirect
            else
            {
                HttpContext.Current.Response.Redirect("../logins/index.asp?action=dn&r=" + CommonFunctions.GetCurrentPageName());
            }
        }
    }

    // Holds users information
    public class User
    {
        public int ID { get; private set; }
        public string username { get; private set; }
        public Company company { get; private set; }
        public string title { get; private set; }
        public string forenames { get; private set; }
        public string surnames { get; private set; }
        public string email { get; private set; }
    }

    // Holds company information
    public class Company
    {
        public int ID { get; private set; }
        public string name { get; private set; }
        public string telephone { get; private set; }
    }
}

为什么Default.aspx.cs会抛出:

  

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

3 个答案:

答案 0 :(得分:3)

如果您希望您的课程住在App_Code以外的其他地方,请在您的解决方案中添加“类库”项目并将该课程放在那里。不要忘记在webproject中引用该项目。

答案 1 :(得分:1)

只编译App_Code目录中的代码 - 所以,除非你的文件在那里(或子目录),否则它们不会被选中

重复版本是什么意思?根据项目设置,可以通过首次访问站点或编译本身来触发实际构建。也可以做半个半。事先做一点准备(构建/发布)和第一次网站访问的实际编译

答案 2 :(得分:0)

代码文件(与aspx文件相关的文件除外)仅放在App_Code文件夹中以确保编译(这是ASP.net强加的要求,现在我从评论中知道它只适用于{ {1}}项目,而不是web site个项目。如果他们在其他任何地方他们没有编译。检查,web application文件夹以外的代码文件找不到Build Action