在ASP.NET AJAX中別使用

來源:互聯網
上載者:User
在ASP.NET AJAX中別使用<xhtmlConformance mode="Legacy"/>

把VS 2003 Web項目自動移植到VS 2005的,在web.config檔案中還配置有 <xhtmlConformance mode="Legacy"/> 。

在使用ASP.NET AJAX UpdatePanel 控制項時,這個奇怪的行為有時會包括頁面做整頁 postback,而不僅是遞增性的局部更新的情形。

當你開啟你的web.config檔案,你會看到其中的 <xhtmlConformance/> 元素,象這樣:

<configuration>

    <system.web>
        <xhtmlConformance mode="Legacy" />
     </system.web>

</configuration>

ASP.NET 1.0 和 1.1 中的許多伺服器端控制項並不輸出與XHTML相容的標識。ASP.NET 2.0 對此做了改變,在預設情形下,所有的伺服器端控制項都會輸出與XHTML相容的標識.

但在早期的ASP.NET 2.0 beta 中我們注意到的一件事情是,當把客戶應用升級時,其實,很多應用會假設頁面輸出並不是與XHTML相容的。把我們伺服器控制項的預設輸出改成與XHTML相容的話,它有時會修改頁面的視覺顯示。為向後相容的目的,我們添加了上面這個 <xhtmlConformance> 設定,允許開發人員可以設定控制項以Legacy模式(即與ASP.NET 1.1一樣,會輸出非XHTML標識),或者Transitional 模式 (XHTML Transitional) ,或者 Strict 模式 (XHTML Strict)顯示。

在預設情形下,當你使用VS 2003升級到VS 2005的Web項目移植嚮導時(無論是網站或 web 應用項目),你的web.config檔案裡會添有這個legacy配置。

解決方案:

除非你已知當你的網站以XHTML模式運行時會有問題(但你還沒時間更正),我總是從web.config檔案裡去掉 <xhtmlConformance> 這部分,或者明確地將其設定為Transitional 或 Strict。

這將使得你的HTML輸出是符合標準的,此外,這也將導致你的伺服器控制項的HTML輸出是well formed,即,開始標籤和結束標籤總是相匹配的。當你使用AJAX技術來動態替換你的頁面上某些HTML元素的內容時,這尤其重要,否則的話,用戶端 JavaScript指令碼有時會搞不清楚容器元素,導致出錯。它也將確保ASP.NET AJAX會在你的網站上正常工作。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.