是否可以在后台运行aspx文件作为"In memory"操作



我在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的另一个网站上来隐藏它,并通过防火墙规则来保护它。我相信还有其他方法可以隐藏它,但这是一个简单的方法。

希望我能帮上忙!

最新更新