[英]Invalid ViewState with UpdatePanel
(我在帶有開發Web服務器的Visual Studio 2008(ASP:NET 3.5)上運行)
我有一個asp.net頁面,其中:
UpdatePanel中有一個SliderExtender控件。
服務器端我正在捕獲滑塊的Changed事件。
用戶可以更改滑塊值,一切正常。
問題
用戶可以使用箭頭更改滑塊的值,但是當他將箭頭向下放置一會兒時,將引發“ Invalid ViewState
”異常。
Invalid viewstate.
Client IP: 127.0.0.1
Port:
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.2; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MS-RTC LM 8; .NET4.0C; .NET4.0E)
ViewState: /wEPDwXJja...
我已經嘗試在Chrome上使用IE8並獲得相同的結果。
我知道發生這種情況的原因是,服務器端的Changed
方法被Changed
調用,並且隨着傳入調用超過服務器處理速度的時刻到來了。
問題
如何避免發生此問題?
我嘗試了什么?
編輯
這是代碼:
<asp:TextBox runat="server" ID="txtSlider" AutoPostBack="true" Text="100" OnTextChanged="txtSlider_TextChanged"></asp:TextBox>
<asp:SliderExtender ID="sldSlider" Decimals="0" TargetControlID="txtSlider" Length="50"
BoundControlID="lblProporcion" runat="server" Minimum="0" Maximum="100" >
</asp:SliderExtender>
protected void txtSlider_TextChanged(object sender, EventArgs e)
{
//Server processing, UpdatePanel's update....
}
當用戶移動滑塊以更改其值時,txtSlider的text屬性將對其進行更改,從而引發txtSlider_TextChanged
事件。 我想我可以使用HiddenField來存儲上次回發,並在客戶端使用它來定義txtSlider是否回發(如果至少經過了500ms,則繼續進行回發)。
我正在嘗試最后一種方法,如果我設法解決此問題,我會通知您。
我不再有這個問題,但我也沒有解決這個問題。 我正在捕獲無效的ViewState異常,因此用戶不會注意到任何問題,並且一切都會順利進行。
我正在global.asax上執行此操作:
protected void Application_Error(object sender, EventArgs e)
{
Exception exc = HttpContext.Current.Server.GetLastError().InnerException;
if (exc != null)
{
//register the exception on error log table
}
}
如果有人對這個問題發表真正的答案,我會立即取消標記。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.