国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安国市| 建昌县| 安陆市| 鹿邑县| 彭州市| 柘荣县| 临江市| 盐边县| 视频| 汝阳县| 会理县| 思茅市| 军事| 民勤县| 财经| 新乡市| 珲春市| 开平市| 万安县| 炉霍县| 和平县| 浮梁县| 成都市| 青龙| 苍南县| 华阴市| 闻喜县| 沙洋县| 莲花县| 宁武县| 阿拉尔市| 翁牛特旗| 怀宁县| 阿巴嘎旗| 元谋县| 台北县| 安达市| 鲁甸县| 名山县| 张掖市| 广南县|