我有一个物理上存在的aspx
文件IIS
。它有一个asp.net Grid View 控件和几行html。
现在我想要的是,代码将在内存中的某处呈现 aspx,并在运行时填充有数据库的网格视图。然后通过我的代码,我将能够阅读整个生成的 html。
可能吗?或任何替代方法,以便我可以打开表单,但它对用户不可用,某种visible=false
东西。
请帮忙。
注意:
我期待与我们用来读取 txt 文件的过程相同。但是这里我需要一个额外的填充,也就是调用页面生命周期事件。
我有一个物理上存在的aspx
文件IIS
。它有一个asp.net Grid View 控件和几行html。
现在我想要的是,代码将在内存中的某处呈现 aspx,并在运行时填充有数据库的网格视图。然后通过我的代码,我将能够阅读整个生成的 html。
可能吗?或任何替代方法,以便我可以打开表单,但它对用户不可用,某种visible=false
东西。
请帮忙。
注意:
我期待与我们用来读取 txt 文件的过程相同。但是这里我需要一个额外的填充,也就是调用页面生命周期事件。
您可以使用RenderControl 方法将控件输出到HtmlTextWriter对象。
using (var textWriter = new StringWriter())
using (var writer = new HtmlTextWriter(textWriter))
{
yourControl.RenderControl(writer);
var html = textWriter.ToString();
}
从设计的角度来看,您描述的场景不是一个很好的场景。我必须明确表示,在正常情况下,我绝不会建议这样做。我想你有一个很好的理由必须使用这个“隐藏”页面。
所以这是我的“建议”。您可以将“隐藏”的 aspx 托管在另一个进程中的单独 Web 应用程序中,无法从服务器外部访问。然后,您的普通 asp.net 应用程序可以对后面的代码发出 HTTP 请求,以“隐藏”页面为目标并使用响应(使用HTML Agility之类的工具解析 HTTP 响应。您可以通过将特定页面放在另一个页面上来隐藏它IIS中的站点并通过防火墙规则保护它。我相信还有其他方法可以隐藏它,但这是一种简单的方法。
希望我有所帮助!