我在 ASP.NET 中动态创建一个页面,我想在表单中加载一个控件,但每次我尝试将它添加到 Page.Form.Controls 时,表单为空并给出一个 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 的代码,因为它工作量太大而且超出了我正在做的范围,范围不是由我决定的。