これは、ページのライフサイクルがどのように機能するか、およびコントロール全体でデータを公開する方法について誤っている可能性があるように思われます。たとえば、ASPXに次のコードがあるとします。
public override void OnLoad(EventArgs e)
{
string userName = "Bob";
}
ASPXファイルでは、コントロールを参照し、その上にプロパティを設定して、データを渡すことができます。
<custom:top ID="someControl" runat="server" />
top次のように、コントロールのプロパティを公開します。
public string UserName { get; set; }
次に、このコードをOnLoadメソッドに追加できます。
someControl.UserName = userName;
その後、コントロールはそのデータにアクセスできるようになります。または、コントロールへの直接回線がない場合は、リクエストキャッシュに物を貼り付けることができます。
HttpContext.Current.Items["key"] = userName;
次に、同じ方法でコントロールからデータをプルします。
string fromCache = HttpContext.Current.Items["key"];