Thanks for the response, but I'm still getting served an empty page.
My handler now looks like this:
Private Sub Page_Error(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Error
Dim ctx As HttpContext = HttpContext.Current
Dim exception As Exception = ctx.Server.GetLastError()
If TypeOf (exception) Is ApplicationException Then
Dim cv As New CustomValidator()
cv.IsValid = False
cv.ID = "myCV"
cv.ErrorMessage = Exception.Message
cv.Visible = True
cv.Display = ValidatorDisplay.None
Me.Form.Controls.Add(cv)
End If
' --------------------------------------------------
' To let the page finish running we clear the error
' --------------------------------------------------
ctx.Server.ClearError()
End Sub
I would really like to figure out a way to validate and preserve the
form information in the Page_Error handler because I intend to have
the handler inherited by every page that has a form on it. I would
rather have this validation check performed in the Page_Error of the
base page class all my pages inherit from rather than have a Try/Catch
block on every page. Is there any way to do this?
Chris
On Jul 30, 12:18 pm, bruce barker <nos...@nospam.comwrote:
just create a custom validator and add to page.
CustomValidator cv = new CustomValidator();
cv.IsValid = false;
cv.ErrorMessage = "my error";
cv.Visible = true;
cv.Display = ValidatorDisplay.None;
this.Form.Control.Add(cv);
-- bruce (sqlwork.com)
hardi...@hotmail.com wrote:
Hi,
I've created an n-tier app where validation rules reside in the
business layer. When a webform is saved, a business object examines
its state, and if some property is invalid, throws a custom exception
(ValidationException)
The exception bubbles up to the UI where it gets trapped:
Private Sub Page_Error(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Error
Dim ctx As HttpContext = HttpContext.Current
Dim exception As Exception = ctx.Server.GetLastError()
If TypeOf (exception) Is ValidationException Then
Me.txtErrorMessages.Text = exception.message
ctx.Server.ClearError()
End If
End Sub
The exception is being successfully caught, but at the end of the
process I'm served with an empty page. What I would like to have
happen is the page reloads with all the form's information in addition
to a textbox being populated with the exception's message. I tried
using response.redirect(), but of course the textbox does not get
populated.
I'd rather not redirect the user to an error page, I want them to be
able to fix the validation errors on the form and continue on from
there. What's the best way to tackle this?
Regards,
Chris