所以在這裏它是一個完全適合我的需求(再次感謝ps2goat的提示)解決方案。
我的兩頁基本結構是:
[namespace A]
Page.aspx
Page.aspx.cs
Page.aspx.designer.cs
和
[namespace B]
Page.aspx
Page.aspx.cs
Page.aspx.designer.cs
(假設我有遠遠超過2頁)
我需要刪除的.cs和.designer.cs文件,同時能夠引用.aspx頁面中聲明的服務器控件。
從基類繼承的標準,也不使用母版頁,這是不可能的:它們運行良好,但完全不瞭解子ASPX服務器控件。
所以,我創建了一個通用類文件
[namespace COMMON]
Page.cs
在這個文件中,我都抄「的.cs」部分類和「了.Designer.cs」的內容部分類(顯然考慮改變護理命名空間添加到新的名稱空間中)(它們在代碼中是相同的)。
在page.aspx文件中,代碼隱藏映射從「Page.aspx.cs」和「A.Page」命名空間更新爲「Page.cs」和「Common.Page」命名空間。
因此,文件從這些改爲:
[Page。ASPX](每個命名空間一個實例)
<%@ Page Title="Page" Language="C#" MasterPageFile="~/Page.Master" AutoEventWireup="true" CodeBehind="Page.aspx.cs" Inherits="Project.A.Page" %>
<asp:Content ID="ContentB" ContentPlaceHolderID="cBody" runat="server">
<asp:TextBox ID="txbTest" runat="server" MaxLength="75"></asp:TextBox>
</asp:Content>
[Page.aspx.cs](每個命名空間一個實例)
namespace Project.A
{
public partial class Page: BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
this.txbTest.Text = "Hello";
}
}
}
[Page.aspx.designer.cs](自動產生每個命名空間,一個實例)
namespace Project.A {
public partial class Page{
protected global::System.Web.UI.WebControls.TextBox txbTest;
}
}
向這些:
[Page.aspx](每個命名空間一個實例)
<%@ Page Title="Page" Language="C#" MasterPageFile="~/Page.Master" AutoEventWireup="true" CodeBehind="Page.cs" Inherits="Project.COMMON.Page" %>
<asp:Content ID="ContentB" ContentPlaceHolderID="cBody" runat="server">
<asp:TextBox ID="txbTest" runat="server" MaxLength="75"></asp:TextBox>
</asp:Content>
[Page.cs](一個單獨的情況,由舊的.cs和.designer文件的內容所做的)
namespace Project.COMMON
{
public partial class Page: BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
this.txbTest.Text = "Hello";
}
}
public partial class Page{
protected global::System.Web.UI.WebControls.TextBox txbTest;
}
}
然後我刪除了頁面的的.cs和.designer的每個實例。 CS文件,留下一個結構,如我所需要的,如:
~/A/Page.aspx
~/B/Page.aspx
~/COMMON/Page.cs
它的作品就像一個魅力!
最後,我可以說aspx在投影web軟件時仍然是一個選擇,這個項目的MVC移植可以等待。
您是否嘗試過使用部分類?這是網頁使用,雖然我沒有嘗試這樣做。最好的方法是讓這兩個代碼可以繼承的服務器控件(所有代碼)。 – ps2goat
@ ps2goat - 你是天才!我正在做一些嘗試,似乎有效 - 我會及時更新,因爲它可能對其他人有所幫助 – LittleSweetSeas
@revisors:這不是一個簡單的從基類繼承的問題(如問題中明確指出的),所以這與其他問題中已經提供的答案不同。我將很快發佈似乎有效的解決方案,這要感謝ps2goat提示 – LittleSweetSeas