ハンドラーからコントロールの HTML 出力を返したい。私のコードは次のようになります。
システムを使用して; System.IO の使用; System.Web の使用; System.Web.UI を使用します。System.Web.UI.WebControls を使用します。
public class PopupCalendar : IHttpHandler {
public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; System.Web.UI.Page page = new System.Web.UI.Page(); UserControl ctrl = (UserControl)page.LoadControl("~/Controls/CalendarMonthView.ascx"); page.Form.Controls.Add(ctrl); StringWriter stringWriter = new StringWriter(); HtmlTextWriter tw = new HtmlTextWriter(stringWriter); ctrl.RenderControl(tw); context.Response.Write(stringWriter.ToString()); } public bool IsReusable { get { return false; } }
}
エラーが発生します:
「/CMS」アプリケーションでサーバー エラーが発生しました。オブジェクト参照がオブジェクト インスタンスに設定されていません。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。
ソース エラー:
14 行目: System.Web.UI.Page ページ = new System.Web.UI.Page(); 15 行目: UserControl ctrl = (UserControl)page.LoadControl("~/Controls/CalendarMonthView.ascx"); 16 行目: page.Form.Controls.Add(ctrl); 17 行目:
18 行目: StringWriter stringWriter = new StringWriter();
ハンドラーを介して Usercontrol の出力を返すにはどうすればよいですか?