我已将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指令或程序集引用?)
答案 0 :(得分:3)
如果您希望您的课程住在App_Code以外的其他地方,请在您的解决方案中添加“类库”项目并将该课程放在那里。不要忘记在webproject中引用该项目。
答案 1 :(得分:1)
只编译App_Code目录中的代码 - 所以,除非你的文件在那里(或子目录),否则它们不会被选中
重复版本是什么意思?根据项目设置,可以通过首次访问站点或编译本身来触发实际构建。也可以做半个半。事先做一点准备(构建/发布)和第一次网站访问的实际编译
答案 2 :(得分:0)
代码文件(与aspx文件相关的文件除外)仅放在App_Code
文件夹中以确保编译(这是ASP.net强加的要求,现在我从评论中知道它只适用于{ {1}}项目,而不是web site
个项目。如果他们在其他任何地方他们没有编译。检查,web application
文件夹以外的代码文件找不到Build Action
。