我最近更改了網站的結構以使用母版頁。第一個問題是,所有的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生成的 –