Joh*_*ski 10 c# asp.net render ektron
我有一个页面上有一堆用户控件.我希望能够在我的代码中替换的内容中直接使用"宏"或"占位符".这应该不重要,但我使用Ektron作为我的CMS.
在发送到客户端之前,是否有任何页面事件可以挂钩以对整个呈现的页面内容进行字符串替换?
UPDATE
这是我目前用来完成此任务的代码:
protected override void Render(HtmlTextWriter writer)
{
string content = string.Empty;
using (var stringWriter = new StringWriter())
using (var htmlWriter = new HtmlTextWriter(stringWriter))
{
// render the current page content to our temp writer
base.Render(htmlWriter);
htmlWriter.Close();
// get the content
content = stringWriter.ToString();
}
// replace our placeholders
string newContent = content.Replace("$placeholder1$", "placeholder1 data").Replace("$placeholder2$", "placeholder2 data");
// write the new html to the page
writer.Write(newContent);
}
Run Code Online (Sandbox Code Playgroud)
你试过覆盖渲染方法吗?
protected override void Render(HtmlTextWriter writer)
{
StringBuilder htmlString = new StringBuilder(); // this will hold the string
StringWriter stringWriter = new StringWriter(htmlString);
HtmlTextWriter tmpWriter = new HtmlTextWriter(stringWriter);
Page.Render(tmpWriter);
writer.Flush();
writer.Write(DoReplaceLogic(htmlString.ToString()););
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15185 次 |
| 最近记录: |