2009-08-09 174 views
6

當我創建一個ASP.NET項目時,Default.aspx頁面所在的命名空間是什麼?ASP.NET命名空間

,以及如何找到項目中的任何其他ASP.NET頁面的命名空間?

我正在使用VS2005。我首先創建了一個空白的解決方案,然後添加一個網站。

當我點擊右鍵按鈕,轉到「添加新網站」 - 菜單我發現下面的模板ASP.NEt網站已(1模板),然後我說這個我SLN。

我正在使用C#和VS2005。在這種情況下,這與VS2008不匹配。在問題頁面(在你的情況Default.aspx.cs)

+0

這取決於項目類型。你正在創建一個新的「Web應用程序」或創建一個新的「網站」? – blowdart 2009-08-09 15:12:12

+0

那還是很不回答的問題,你添加了什麼類型的網站?有兩個網站和Web應用程序(我不能更確切地說,我沒有在這臺機器上的2005) – blowdart 2009-08-09 15:17:37

+0

這是在vb或c#? – meandmycode 2009-08-09 15:20:10

回答

9

網站沒有/支持命名空間。 Web應用程序。

要回答這個問題,因爲創建新的「站點」,命名空間不發揮作用。至於如何從Webform頁面訪問其他WebForm頁面類,我沒有想到這個原因。我不認爲這是可行的(糾正我,如果我錯了)。

無論如何有辦法避開。如果您在一個webforms的類中使用了一些可重用的業務/ UI /其他邏輯,只需將這些方法移出App_Code下的XXX.cs文件即可。沒有必要使用名稱空間,並且可以在所有的WebForm類中使用它。

+0

我需要繼承.aspx頁面。 – 2009-08-09 16:06:30

+3

你的意思是你有一個basepage.aspx和一個codebind類「basepage」。你有一個newpage.aspx有一個「newpage」類來監聽「basepage」嗎?如果是這樣,請閱讀: http://www.west-wind.com/WebLog/posts/3016.aspx 「要注意什麼」。希望這可以幫助。 – 2009-08-09 16:41:40

2

看代碼隱藏。你會看到你的名字空間。 Aspx是對使用分部類聲明進行合併的代碼隱藏類的補充。

我剛剛創建了一個新的Web應用程序項目。這是什麼代碼隱藏看起來像:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace WebApplication1 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
    } 
} 

所以你看到「WebApplication1」命名空間。你看,對吧?

新增:所以我創建了一個網站項目再次檢查出來。好的,我確認,我沒有看到任何名稱空間聲明。谷歌搜索一點點後,我發現這個帖子:

asp.net - Web Site vs. Web Application(鏈接固定)

新編譯模型拋出了Visual Studio項目文件本身,asp.net拿回了「編譯導通飛行「概念,除之外的所有內容都不再使用網站內的名稱空間,並徹底改變了UI模板和相關代碼隱藏的安排方式。

從外觀上看,它只是拋出所有類,包括頁面類和您通常放入App_Code文件夾的自定義邏輯類。即使我將這些對象封裝在自定義命名空間中,類查看器也不會顯示頁面對象,但它在App_Code文件夾中與聲明的命名空間一起正確地執行。我想VS團隊中的人並不意味着你關心頁面類的命名空間。

+0

你住哪個星球?在任何asp.net代碼隱藏文件中都沒有名稱空間聲明。 – 2009-08-09 15:06:48

+1

你在開玩笑嗎?給我一分鐘,我會給你一個例子。 – 2009-08-09 15:08:01

+0

我正在使用VS2005,我從未在我的Web項目中看到過這種情況。 – 2009-08-09 15:13:22

2

嘗試定義在應用程序代碼目錄的接口,並具有隱藏文件的代碼實現的接口。