2008年5月6日

Page Inherited Abstract 不能在 VS 2003 中以Design View觀看

這句話的意思是:如果你自己定義了一個繼承自Page的Abstract class,那任何以這個Abstract class延伸的出來的頁面,就不能在Visual Studio 2003中以Design View檢視。

也就是說:

public abstract class BasePage : System.Web.UI.Page {
}

public class adm_user_list : BasePage{
}


其中 adm_user_list是 adm_user_list.aspx的code behind。在這種情況下,adm_user_list.aspx就無法在 Visual studio 2003 下以 Design view 觀看。嘗試這件事情的時候,會得到Type Abstract的錯誤訊息。

也許這本來就是應該的(沒有時間去查清楚Design time support的相關限制),但我還是覺得很奇怪。對所有其他有design time support的server control,當然不應該有abstract的可能,但Page是一個很奇怪的例外。就以上例來說,adm_user_list.aspx已經是BasePage的一個實作子類別,不是一個Abstract Type。而且,就算沒有code behind,所有的.aspx都會由掛在IIS的ISAPI(也就是ASP.NET_xxxxx.dll)先行產生一個class(這裡的例子,會產生ASP.adm_user_list_aspx這個class)。這樣還給我Type Abstract,就會讓人有點三條線的感覺....

沒有留言:

張貼留言