筆者在研究QuickGuide.txt的文章同時,按照順序一步步的做法,結果運行時,發現老是出現這樣的錯誤 ,"WebForm1"沒有定義的Javascript錯誤,換了以該項目為根目錄,錯誤照舊
使用google在網絡裡查詢,結果發現很多朋友也發生同樣的錯誤.
於是產生歡迎該dll是否download的不正確. 但是照著文檔資料查詢了一下
private void Page_Load(object sender, System.EventArgs e)
{
// 在此處放置用戶代碼以初始化頁面
Ajax.Utility.RegisterTypeForAJax(typeof(WebForm1));
}
這裡設置後,web裡面會產生代碼
<script type="text/Javascript" src="/AJax/common.ashx"></script>
<script type="text/Javascript" src="/ajax/AJAX_Test.WebForm1,AJax_Test.ashx"></script>
這證明dll能夠發生作用,也就是說該dll能正常運行.到底錯誤怎麼產生的呢??
根據
The call to RegisterTypeForAJax emits the following JavaScript on the page (alternatively, you could manually place the following two lines on the page):
<script language="Javascript" src="AJax/common.ashx"></script>
<script language="Javascript"
src="AJax/NAMESPACE.PAGECLASS,ASSEMBLYNAME.ashx"></script>
Where the bolded parts have the following meaning:
NAMESPACE.PAGECLASS
The namespace and class of the current page
(this will typically be the value of the Inherits attribute in the @Page directive)
ASSEMBLYNAME
The name of the assembly the current page is part of
(this will typically be the name of your project)
發現該產生的code 必須是AJax/為根的,所以按照上面描述,人工加上一段code在ASPx文件裡
<script type="text/Javascript" src="AJax/common.ashx"></script>
<script type="text/Javascript" src="ajax/AJAX_Test.WebForm1,AJax_Test.ashx"></script>
private void Page_Load(object sender, System.EventArgs e)
{
// 在此處放置用戶代碼以初始化頁面
// Ajax.Utility.RegisterTypeForAJax(typeof(WebForm1)); 注銷這段代碼
}
結果運行正確.
得到的結論是,可能是該AJax的一個小Bug,產生的js代碼不對.但是可以根據上述的規則人為添加JS代碼