2009-06-06 79 views
2

我是一位經驗豐富的.net桌面開發人員,但這是我第一次嘗試使用ASP.NET,我幾乎馬上就陷入了困境。ASP.NET初學者遇到新的網站

我已經使用VS2008「新網站」嚮導,並得到了一個簡單的頁面工作,隱藏頁面和所有。但是下一步爲所有頁面使用的一些實用程序方法添加一個簡單的靜態類並不是一成不變的。

我試過在App_Code中放置代碼,我試着創建一個新的庫項目並引用它......一切總是在Visual Studio中編譯好,但是當上傳到服務器時它只是拒絕找到名稱空間/上課或認識圖書館大會。我已經嘗試過用web.config搞亂了,但一直沒有找到任何引用庫程序集的方式(例如「*」似乎沒有這樣做)。

服務器頁面顯示:版本信息:Microsoft .NET Framework版本:2.0.50727.3074; ASP.NET版本:2.0.50727.3074

是否有一種實用方法的最佳實踐方式,以及如何讓我的代碼隱藏頁面識別除本身之外的任何類(或更好的名稱空間,甚至是程序集)?

確切的錯誤我得到的是: CS0246:類型或命名空間名稱「MyCommon」找不到(是否缺少using指令或程序集引用?)

回答

2

我假設你有一個using聲明指向命名空間?

我不時看到的東西......在服務器上,你(在IIS中)將新文件夾標記爲「應用程序」嗎?它應該在IIS中有一個齒輪。如果你沒有,那麼它會在App_Code的錯誤位置(「應用程序」告訴它本地應用程序根目錄在哪裏)。右鍵單擊,屬性,「創建應用程序」(或類似的東西 - 我沒有服務器......)

+0

在Vista(IIS7)上有一個轉換爲應用程序選項,應該做的伎倆。 – RichardOD 2009-06-06 20:58:09

+0

是的,我試過全局名稱空間和顯式名稱空間;它們在visual studio和編譯文件中都很好匹配,但在服務器上斷開。不幸的是,我只有FTP訪問服務器,所以我無法檢查圖標... – lidgren 2009-06-06 21:04:15

+0

沒有在IIS中配置文件夾作爲應用程序,它不會工作......它是什麼服務器? IIS 6? IIS 7? – 2009-06-06 21:10:24

0

確保您的助手類與webform在同一個命名空間中 - 或完全限定您正在調用的特定助手方法。你能提供你想要做的一些代碼嗎?

0

確保通過publishing the web site將項目移動到服務器。此外,您可能需要使用web application project(new-> project-> web-> web應用程序項目)而不是新的網站。它可能會更像你期望的那樣。

5

您最好忽略網站「項目」。它們在Visual Studio世界中是獨一無二的,它們不是項目(沒有.csproj或其他類似的文件)。對於任何非網站開發人員來說,他們都顯得非常奇怪並且違反直覺。

取而代之,使用File-> Add New Project,並選擇「ASP.NET Web Application」。這將創建一個Web應用程序項目,它可以按照您的預期工作。你甚至可以在你喜歡的任何文件夾中添加類,並且它們會像你期望的那樣工作。

1

當類是在App_Code文件沒有我已經看到了這個錯誤...

在另一方面,你可能已經開始與ASP.NET應用程序,而不是網站。它們是2種不同的應用程序模型,應用程序變體在添加類和程序集方面稍微簡單一些。

0

我會避免使用網站項目,因爲它確實給我們的團隊造成了很多麻煩,類似於您在此處描述的內容。相反,您應該使用更清晰,更適合多項目解決方案的Web應用程序項目

但是,如果您必須堅持使用網站項目模型,則應確保已將項目(MyCommon)的引用添加到Web應用程序,然後在要使用它的類中創建使用語句。