我正在尝试将已解析的 aspx 文件加载到字符串中。原因是因为我有一个页面,上面有大量的 html,其中也有需要处理的部分,以便插入正确的信息。然后,该页面需要显示为确认页面,并在用户提交表单时通过确认电子邮件发送。
显示确认页面非常简单,但我防止代码重复的想法是将 aspx 文件渲染为字符串变量,以用作电子邮件的内容。
我意识到我可以将所有内容添加为一个巨大的多行字符串并将其加载到 aspx 页面上,然后加载到电子邮件中,但这个解决方案对我来说感觉很困惑,并且需要重新编译应用程序曾经想要更改内容。
也许有人可以提出更好的方法来实现我正在尝试的目标?
我想出的代码如下,但我不确定是否可以在将 ProcessRequest 发送到浏览器之前捕获它的输出:
IHttpHandler handler = PageParser.GetCompiledPageInstance("/SubmitConfirmation.aspx?appid=" + this.Id, "SubmitConfirmation.aspx", HttpContext.Current);
handler.ProcessRequest(HttpContext.Current);
string str_out = ???;
基本上我想要实现的目标与以下 PHP 代码相同:
<?php
ob_start();
include("SubmitConfirmation.php");
$str_out = ob_get_contents();
ob_end_clean();
?>
欢迎任何建议。
最佳答案
你尝试过吗
System.IO.StringWriter htmlStringWriter = new System.IO.StringWriter();
Server.Execute("Page.aspx", htmlStringWriter);
string htmlOutput = htmlStringWriter.GetStringBuilder().ToString();
发现于Kiyoshi's blog 。测试了它 - 并为我工作。请参阅MSDN ,也
关于c# - 如何将解析后的aspx加载到字符串变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14959969/