2

我已将 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 指令或程序集引用?)

4

3 回答 3

3

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

于 2011-01-26T12:46:19.690 回答
1

仅编译 App_Code 目录中的代码 - 因此,除非您的文件在其中(或子目录),否则它们不会被拾取

重复构建是什么意思?根据项目设置,实际构建可以由第一次访问站点或编译本身触发。也可以做一半。事先在(构建/发布)和第一次站点访问时进行实际编译

于 2011-01-26T12:43:15.307 回答
0

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

于 2011-01-26T12:44:24.853 回答