Asp.net
ASP.Net 4 中 ClientIDMode 的正確設置是什麼以獲得 ASP.Net 2.0 渲染。
我們剛剛將我們的應用程序從 ASP.Net 2.0 更新到了 ASP.Net 4.0。
我們已經在 web.config 中包含了
<system.web>元素:<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />我的理解是,這應該使控制項與 .Net 2.0/3.5 相同。
然而……它不是……這是一個例子
這是在 2.0 中呈現的:
<input id="grdUserEntity__ctl1_chkSelectAll" type="checkbox" name="grdUserEntity:_ctl1:chkSelectAll" onclick="javascript:iSelectAll();" />這是在 4.0 中:
<input id="grdUserEntity_ctl01_chkSelectAll" type="checkbox" name="grdUserEntity$ctl01$chkSelectAll" onclick="javascript:iSelectAll();" />區別:
2.0 id=grdUserEntity__ctl1_chkSelectAll 4.0 id=grdUserEntity_ctl01_chkSelectAll根據我讀到的配置設置將導致 ASP.Net 4.0 呈現伺服器控制項和客戶端 ID 與以前的版本相同。
我們做錯了什麼?
從 ASP.NET 2.0 到 ASP.NET 3.5,ID 的呈現方式發生了變化。由於您要從 2.0 升級到 4.0,您仍然會看到這種差異。更改是由於 XHTML 合規性改進。
您可以嘗試使用 xhtmlCompliance 兼容設置切換回 2.0 渲染。還有另一個兼容設置,是的:) 它應該可以工作,但老實說,我不確定舊的兼容設置在 4.0 中的測試效果如何,而且我知道如果你打算使用它不會與 UpdatePanel 兼容那。
您是否有理由要保留 2.0 渲染?只是害怕回歸,還是你有任何已知的實際回歸?
XHTML 設置:http: //msdn.microsoft.com/en-us/library/ms178159.aspx