2015-04-30 55 views
0

我在页面中做了一些验证,并且此验证工作正常。但是,当用户尝试第一次失败尝试后传递正确的值,这个错误发生Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.即使修正后抛出异常

VB.NET:

Protected Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click 
Try 
    If Not String.IsNullOrEmpty(txtHRRemarks.Text) Then 
     If txtHRRemarks.Text.Trim().Length > 3 Then 
     ModalPopUpExt.Hide() 
     Throw New ApplicationException("Please reduce HR Remarks (max 500 chars)") 
    End If 
    End If 
Catch ex As Exception 
     Utilities.PageMessage = "" 
     Utilities.DisplayExceptionDetails(ex) 
End Try 
End Sub 

Protected Overrides Sub Render(writer As HtmlTextWriter) 
    If Utilities.PageError <> "" Then 
     pnlMsgs.Visible = True 
     Me.hfErrMsg.Value = "Error" 
     Dim Validator As New RequiredFieldValidator 
     Validator.ErrorMessage = Utilities.PageError 
     Validator.ValidationGroup = "ErrorGroup" 
     Validator.IsValid = False 
     Validator.Visible = False 
     placeholderError.Controls.Add(Validator) 
     Utilities.PageError = "" 
     upErrorMsg.Update() 

    ElseIf Utilities.PageMessage <> "" Then 
     pnlSccs.Visible = True 
     lblSuccess.Text = Utilities.PageMessage 
     Utilities.PageMessage = "" 
     upSuccessMsg.Update() 
     Utilities.PageMessage = "" 
    Else 
     pnlMsgs.Visible = False 
    End If 
    MyBase.Render(writer) 
End Sub 

的发生错误的用户纠正抓住了数据之后验证。

+0

你的意思是你抛出的错误吗? – OneFineDay

+0

@OneFineDay抛出异常并且用户更正该值并将其设置为小于3时,会出现问题中提到的错误。 – 7alhashmi

回答

0

看代码...

If Not String.IsNullOrEmpty(txtHRRemarks.Text) Then 
    If txtHRRemarks.Text.Trim().Length > 3 Then 
    ModalPopUpExt.Hide() 
    Throw New ApplicationException("Please reduce HR Remarks (max 500 chars)") 
End If 
End If 

所以,如果txtHRRemarks.Text.Trim()。长度> 3,你是总是抛出异常!

+0

是的,我做了这个测试。 – 7alhashmi

+0

问题是抛出的异常和用户更正值并将其设置为小于3时,会出现问题中提到的错误。 – 7alhashmi