使用Asp.net ajax 的頁面中pageRequestManager為Null問題解決
初次在原有系統中使用Asp.Net
AJAX調用WebService頁面總是提示pageRequestManager為Null,使用Html嗅探器調試后發現問題在于沒有自動注冊
MicrosoftAjaxWebForms.js文件,另寫了個例子運行并無問題,想了一下估計是Web.Config配置文件有錯了。
沒辦法,只能一段一段的查找原因,發現有一句 <xhtmlConformance mode="Legacy"/>將其刪除后腳本文件注冊正常了。
查找MSDN中有關xhtmlConformance配置節點說明
也就是說因為以前VS.Net2003中因為有些控件的輸出語法不符合XHTML標準
<xhtmlConformance mode="Legacy"/>是為了兼容V1.1版而設置的,在從VS2003升級到VS2005后,為了保證原有頁面的正常運行增加了這個節 點,而Asp.net AJAX必須要求您的頁面語法必須符合XHTML標準,否則可能造成因開始標記,結束標記等不符原因而使得客戶端腳本無法獲知容器元素。
不過真的暈,干嘛一點相應的提示沒有啊,害得我將Web.Config刪了半天才知道。
沒辦法,只能一段一段的查找原因,發現有一句 <xhtmlConformance mode="Legacy"/>將其刪除后腳本文件注冊正常了。
查找MSDN中有關xhtmlConformance配置節點說明
Value | Description |
---|---|
Transitional | XHTML 1.0 Transitional |
Strict | XHTML 1.0 Strict 一致性 |
Legacy | 為了一致性,會將所做的一些呈現變更還原成 v1.1 的呈現行為。 |
也就是說因為以前VS.Net2003中因為有些控件的輸出語法不符合XHTML標準
<xhtmlConformance mode="Legacy"/>是為了兼容V1.1版而設置的,在從VS2003升級到VS2005后,為了保證原有頁面的正常運行增加了這個節 點,而Asp.net AJAX必須要求您的頁面語法必須符合XHTML標準,否則可能造成因開始標記,結束標記等不符原因而使得客戶端腳本無法獲知容器元素。
不過真的暈,干嘛一點相應的提示沒有啊,害得我將Web.Config刪了半天才知道。