ASP.NET で動的にページを作成しています。フォーム内にコントロールをロードしたいのですが、Page.Form.Controls に追加しようとするたびに、フォームが null になり、NullReference が出力されます。
Page myPage = new Page();
FormAtt ctrl = (FormAtt)myPage.LoadControl("path/to/my/file.ascx");
myPage.Form.Controls.Add(ctrl);
これを実行しようとしているのは、コントロール内のイベントとロジックを起動しながら、コントロール HTML を解析して文字列に変換し、(本当に悪い設計の) 文字列を HTML コードで埋める必要がctrl.RenderControl(HtmlWriter)
あるためです。レンダリングされず、イベントが発生していないように見えます。イベント フローを機能させるにはページが必要だと思いましたが、このためだけに新しい aspx を作成したくありませんでした。
また、同じロードコントロールをテストしたため、パスが存在しないものに変更したときに例外が発生しないため、パスが正しいと確信しています。HTML をアセンブルするコードを再設計することはできません。作業が多すぎて、私がやっていることの範囲外です。範囲は私が決めているわけではありません。