我想你的替换模板
{something}
<asp:Literal runat="server">{something}</asp:Literal>
. aspx页面在其生命周期中会经历许多阶段
render
非常接近尾声。运行前
提供
页面保存
ViewState
它保留所有控件的状态(内容),服务器控件内容中的任何更改都会导致
post
ed请求并保存
对象
您可以修改页面内容的最新时刻是
page_PreRenderComplete
事件处理程序。
邮递
ed回来了(全部或部分),那没关系。
事实上,我在许多(所有)页面中使用了非常相似的代码,但我只对控件渲染进行了重新排序(将
script
到底部等等)。内部更换件
提供
导致错误,我在内部使用了一些解决方法
Page_PreRenderComplete
更新以回答评论
在里面
页面预渲染完成
void Page_PreRenderComplete(object sender,EventArgs e)
{
ProcessPageTree((Control)sender); //sender is Page which inherit from Control
}
void ProcessPageTree(Control control) //All server side controls inherit from abstract Control
{
if(control is HyperLink)
{
var hl = control as HyperLink;
hl.Text = hl.Text.Replace("{{something}}", "something new");
}
else if(control is Literal)
{
var ltr = control as Literal;
ltr.Text = ltr.Text.Replace("{{some}}", "something another");
}
if (control.HasControls())
{
foreach(Control c in control.Controls)
{
ProcessPageTree(c);
}
}
}