2011-01-26 38 views
2

我已將CS文件移出App_Data文件夾,因爲我遇到了重複構建錯誤,在編譯時一個在運行時建立,因此我被告知將它們移出該文件夾。ASP.NET無法引用類

兩個文件,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'找不到(您是否缺少使用指令或程序集引用?)

回答

3

如果您希望自己的類能夠在App_Code以外的其他地方生存,請在您的解決方案中添加一個「類庫」項目並將該類放到那裏。不要忘記在您的web項目中引用該項目。

1

只有App_Code目錄中的代碼被編譯 - 所以,除非你的文件在那裏(或子目錄),他們不會拿起

,做你的意思是由重複的建立?根據項目設置,實際構建可以通過首次訪問該站點或編譯本身來觸發。也有可能做到一半。 (build/publish)和第一次訪問的實際編譯

+0

對於網站項目來說,我應該提到,不適用於web應用程序項目。 – abatishchev 2011-01-26 12:44:24

+0

你是對的,afaik OP有網站項目。我剛剛爲其他人提到:) – abatishchev 2011-01-26 12:47:14

0

代碼文件(除了與aspx文件相關的代碼文件)被放在App_Code文件夾中,以確保它們的編譯(這是由ASP.net施加的要求,現在我從評論中知道它僅用於web site項目而不是web application項目)。如果他們在其他地方,他們不會編譯。檢查並找不到App_Code文件夾以外的代碼文件Build Action