我在IIS
上有一个实际存在的aspx
文件。它有一个asp.net网格视图控件和几行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();
}
从设计角度来看,您所描述的场景不是一个很好的场景。我必须明确表示,在正常情况下,我永远不会建议这样做。我想你必须使用这个"隐藏"页面是有充分理由的。
所以这是我的"建议"。您可以在另一个进程中的单独web应用程序中托管"隐藏"aspx,而不能从服务器外部访问。然后,你的普通asp.net应用程序可以在代码背后发出HTTP请求,针对"隐藏"页面并使用响应(使用HTML Agility等工具解析HTTP响应)。你可以通过将特定页面放在IIS的另一个网站上来隐藏它,并通过防火墙规则来保护它。我相信还有其他方法可以隐藏它,但这是一个简单的方法。
希望我能帮上忙!