我正在尝试实施一种解决方案来更新用户控件显示的内容,而无需重新发布用户控件本身。UC 从外部文件获取 xml 作为其内容,而不是将内容存储在控件中,因此 xml 是重新发布的内容,而不是 UC。
问题是我还需要内容包含内联变量,例如 <% =myvariable %>。有没有办法检索 xml,然后在运行时也运行它而不是将其视为文本?
以下只是一个基本示例,仅包含与此问题相关的基础知识,而不是页面上代码的全部范围,但希望它足以阐明我的要求。而不仅仅是“Response.Write(xmlcontent);” 有什么方法可以让检索 xml 的值像运行时页面的“本机”一样运行并处理该内联变量?
用户控制:
<script runat="server">
string xmlcontent = "";
protected override void OnLoad(EventArgs e)
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("/usercontrols/xml/test.xml"));
xmlcontent = doc.SelectSingleNode("content").InnerText;
}
catch
{
}
}
</script>
<%if (!string.IsNullOrEmpty(xmlcontent))
{
Response.Write(xmlcontent);
} %>
XML:
<content>
<![CDATA[<div>This is the content. The next word is a C# variable <% =variabletest %>.</div>]]>
</content>