したがって、これが私のニーズに完全に適合したソリューションです(ヒントをくれた ps2goat に再び感謝します)。
2 つのページの私の基本的な構造は次のとおりです。
[namespace A]
Page.aspx
Page.aspx.cs
Page.aspx.designer.cs
と
[namespace B]
Page.aspx
Page.aspx.cs
Page.aspx.designer.cs
(私は2ページよりもはるかに多いと仮定します)
.aspx ページで宣言されたサーバー コントロールを参照できるようにしながら、.cs ファイルと .designer.cs ファイルを削除する必要がありました。
これは、基本クラスからの標準の継承やマスター ページの使用では不可能です。それらはうまく機能しますが、子 ASPX サーバー コントロールをまったく認識しません。
だから、私はジェネリッククラスファイルを作成しました
[namespace COMMON]
Page.cs
このファイルでは、元の名前空間のいずれかの ".cs" 部分クラスと ".designer.cs" 部分クラスの両方のコンテンツをコピーしました (明らかに、名前空間を新しい名前空間に変更する必要があります) (コードは同じでした)。 .
page.aspx ファイルでは、分離コード マッピングが "Page.aspx.cs" および "A.Page" 名前空間から "Page.cs" および "Common.Page" 名前空間に更新されました。
したがって、ファイルは次から変更されました。
[Page.aspx] (名前空間ごとに 1 つのインスタンス)
<%@ 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] (名前空間ごとに 1 つのインスタンス)
namespace Project.A
{
public partial class Page: BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
this.txbTest.Text = "Hello";
}
}
}
[Page.aspx.designer.cs] (自動生成、名前空間ごとに 1 つのインスタンス)
namespace Project.A {
public partial class Page{
protected global::System.Web.UI.WebControls.TextBox txbTest;
}
}
これらに:
[Page.aspx] (名前空間ごとに 1 つのインスタンス)
<%@ 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 ファイルの内容によって作成された 1 つの SINGULAR インスタンス)
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
そして、それは魅力のように機能します!
最後に、web ソフトウェアを投影する場合、aspx はまだ選択の余地があると言えます。このプロジェクトの MVC 移植は待つことができます。