惱人的 PageRequestManagerParserErrorException

一旦你使用了 Ajax for ASP.NET 所提供的 UpdatePanel 控制項之後,你就有可能會遇到 PageRequestManagerParserErrorException 錯誤,尤其是當你在程式中使用了 Response.Write 之後。

你可能會問,什麼時候會需要使用 Response.Write 呢?當你需要輸出 JavaScript (例如 alert("Something");) 的時候。其實不光是輸出 JavaScript;你只要使用 Response.Write 來輸出任何文字,就有可能會發現這種錯誤。

別以為使用 ClientScript.RegisterStartupBlock 這種指令就能解決問題;你或許會看不到錯誤,可是你輸出的 JavaScript 也不一定會被執行。

那麼該怎麼辦呢?很不幸的,你能採取的因應對策還真的不多,而且可能沒有實際上的用處。

在上面的文章中,作者建議把 JavaScript 輸出為某一個 Label 的文字,但實際上去試做的結果是無法作用的。倒是 Lolota (他也是 MVP) 提供了另一個方法,就是使用 ScriptManager.RegisterClientScriptBlock 來輸出 JavaScript,經我測試的結果是可行的。各位也可以試試看。

請參考MSDN : http://msdn.microsoft.com/zh-tw/library/bb350750.aspx

引文自 : http://phone.idv.tw/cs2/forums/thread/406.aspx

沒有留言: