国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

疑難雜癥:在ASP.NET AJAX中別使用

2024-07-10 13:06:10
字體:
來源:轉載
供稿:網友


最近,我幫過幾個開發人員,他們遇上了一些古怪的javascript問題,這些問題會在使用asp.net ajax 以及他們的一些自定義的javascript腳本時出現。問題的主因在于,他們是把vs 2003 web項目自動移植到vs 2005的,在他們的web.config文件中還配置有 <xhtmlconformance mode="legacy"/> 。

假如你在你的 web 應用中編寫了自定義的客戶端javascript腳本,而且將使用ajax的話,請讀下去,了解如何避免這個常見的疑難雜癥 (注:想瀏覽我貼出的其他技巧,訣竅和疑難雜癥的帖子列單的話,請訪問這里的這個網頁)。

癥狀:

當你往先前成功地從vs 2003 升級到vs 2005的項目中添加新的客戶端javascript腳本時,你會看到奇怪的行為。在使用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兼容的標識 (注:你可以從這篇優秀的msdn文章中進一步了解asp.net 2.0 中標準兼容的情況)。

但在早期的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會在你的網站上正常工作。

希望本文對你有所幫助,

scott

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辽中县| 辽宁省| 阳山县| 墨脱县| 北流市| 金坛市| 平舆县| 临潭县| 三门县| 云林县| 梁平县| 万州区| 张家川| 五大连池市| 古田县| 苍梧县| 如皋市| 凌海市| 徐水县| 罗城| 榕江县| 雷山县| 巴里| 淅川县| 沿河| 中西区| 苗栗县| 元氏县| 濮阳县| 岗巴县| 正宁县| 顺义区| 饶平县| 新密市| 麻城市| 承德县| 中牟县| 遂平县| 凤阳县| 湖南省| 南京市|