我最近更改了网站的结构以使用母版页。第一个问题是,所有的JavaScript都不起作用,因为所有的id都改变了,所以document.getElementById('id')可以找到id,因为现在id是ct100_something_id。我通过使用ClientIDMode =“Static”得到了修复,但现在我发现我在使用Request.Form时发生了另一个回发问题,并且所有名称属性仍然更改为ct100 _....主页/内容页面和Request.Form /控件名称
As far因为我可以看到没有ClientNameMode,所以如何阻止asp.net创建“花哨”名称属性。我无法在服务器控件上显式设置name属性。
只是为了澄清:
有没有办法让这个:
<asp:HiddenField runat="server" ID="hdnUsername" Value="" />
...作为渲染:
<input type="hidden" name="hdnUsername" id="hdnUsername" value="" />
...而不是为:
<input type="hidden" name="ctl00$bodyContent$hdnUsername" id="hdnUsername" value="" />
?
它添加前缀所以不会有在内容页 – Shai
在母版的控件和控件之间的ID冲突,如果你正在创建控件动态你仍然可以广告的ClientIDMode =静态那些controlls –
你应该使用document.getElementById('<%= TextBoxName.ClientID%/')。这将设法获得客户端id asp.net生成的 –