我正在考虑将母版页添加到现有网站,但我发现,一旦我这样做,元素的ID就会附加代码(例如ctl00_MainPageContent_
)。
不幸的是,这会破坏页面上使用原始未修改元素ID的现有脚本。
我意识到我可以用<%= Element.ClientID %>
替换它,但如果我可以完全禁用此行为,那就太棒了。
那么,我可以保留原始ID吗?
答案 0 :(得分:5)
上一篇文章已经回答了这个问题: Remove MasterPage Generated ID
该解决方案使用以下代码覆盖渲染事件:
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
Dim Html As New StringWriter()
Dim Render As New HtmlTextWriter(Html)
MyBase.Render(Render)
writer.Write(Html.ToString().Replace("name=""ctl00$ContentBody$", _
"name=""").Replace("id=""ctl00_ContentBody_", "id="""))
End Sub
答案 1 :(得分:4)
您可以在控件中覆盖ClientID和UniqueID。这是来自here,Rick Strahl撰写的一篇文章。
public override string UniqueID
{
get
{
return this.ID;
}
}
public override string ClientID
{
get
{
return this.ID;
}
}
答案 2 :(得分:0)
这个问题已经很久了,但是新的解决方法是ClientIDMode="Static"
。