筆者在研究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代碼