我最近開始將.NET項目從.NET 1.1遷移到4.0。該系統目前運行在客戶現場並運行。 當我通過VS嚮導遷移解決方案時,我沒有收到任何錯誤。 錯誤是沒有服務器控制事件工作和視圖狀態總是爲空。ASP.NET 1.1到4.0遷移:事件不起作用
我試過明確設置ViewStateMode
已啓用並AutoEventWireup
到true.Unfortunately沒有什麼作品。該項目不是作爲Web應用程序編寫的(轉換不能解決問題)。
我也檢查是否所有的服務器控件hav ID設置(他們這樣做)。
該項目有自己的母版頁系統,System.Web.UI.Page上有一個很厚的層,可能會破壞很多東西,但到目前爲止,我一直無法找到問題的根源。
是否有我應該檢查的任何特定設置(即默認值從.NET 1.1開始更改)還是可以給我一些提示,以便爲什麼會發生這種情況?
編輯1:這指的是轉移一個LinkButton點擊時發佈的值:
CRC = -2134936892 & _ EVENTTARGET = M頁面%24BC%24TestButton & _EVENTARGUMENT = & _ VIEWSTATE = & _EVENTVALIDATION =%2FwEWAwL%2BraDpAgLB49K8A wKy8rFAt4Axk3NlUEWxrtY%2FRtaexH%2F634CkJe6G9Im5EOPXtVw%3D
編輯2:我已經仔細地檢查自定義母版頁機制,我發現它使用了大量Server.Transfer(...)
方法跳轉到正確的頁面之前。這是缺少ViewState的可能原因嗎? (那麼EventTarget總是被持久化會很奇怪)更重要的是,1.1和4.0之間是否會有變化?
ViewState真的是空的,或者你只是不明白它在服務器端?即它是與頁面呈現?一旦執行操作,您能向我們展示Fiddler登錄到服務器的日誌嗎? – 2012-08-06 07:47:03
我已將信息添加到我的原始問題中。 – 2012-08-06 08:14:07
TestButton是否動態添加到頁面?您是否在升級的項目中引入了UpdatePanel?如果你在新項目中引入了UpdatePanel,這可能是問題所在。 ViewState在客戶端也是空的。它至少應該呈現。 – 2012-08-06 08:25:32