我想将值设置为后面代码中的段落元素,以便结果如下所示:
<p runat="server" id="txtShutDown"><!--#include File="ShutDown.inc"--></p>
我试过了:
txtShutDown.InnerText = "<!--#include File=\"ShutDown.inc\"-->";
和
txtShutDown.InnerHtml = "<!--#include File=\"ShutDown.inc\"-->";
但不起作用。
答案 0 :(得分:1)
(说实话,我真的很惊讶这一点,说实话!)
ASP.NET ASPX文件解析器支持SSI(服务器端包含)语法作为Classic ASP 3.0的遗留(并且也非常缺乏文档)。我很惊讶它的工作原理,我很好奇第一个例子的渲染结果是什么,因为它将HtmlControl
实例(HtmlGenericControl("p")
)与SSI混合在一起。我想,ShutDown.inc
的内容被解析器设置为<p>
的静态文本内容,并且尝试包含另一个.aspx
文件将导致解析错误,因为它会遇到{ {1}}指令两次。
“包含”进程在ASPX解析器本身的ASP.NET管道中更早发生。您无法在ASP.NET页面管道/生命周期中稍后调用此操作。
如果您想要原始文本包含,那么您需要手动执行,如下所示:
@Page