0

In ASP.NET Web Forms,i would accomplish that easily:

[...]
try
{
    DateTime date = Convert.ToDateTime("abc");
}
catch(Exception ex)
{
   lblErrorMessage.Text = ex.Message;
}

Now the question is:How can i do the same in ASP.NET MVC? Ive been looking for it and all i found is [HandleError] attribute.I dont want to redirect user to a "Error.aspx" View if an exception occurs.I want to show error messages in the same page like in Web Forms.

Any Ideias?

3 Answers 3

2
try
{
    DateTime date = Convert.ToDateTime("abc");
}
catch(Exception ex)
{
   ViewData["Error"] = ex.Message;
}
return View();

In your view or master page, check to see if ViewData["Error"] is set. If so, display your error div.

<% if (ViewData["Error"] != null)
{
    <div class="error"><%=html.encode(ViewData["Error"]) %></div>
}
%>
Sign up to request clarification or add additional context in comments.

Comments

1
try 
{ 
    DateTime date = Convert.ToDateTime("abc"); 
} 
catch(Exception ex) 
{ 
   ModelState.AddModelError("date", ex)
} 

then in the view

<%= Html.ValidationSummary() %>

1 Comment

I use ModelState with reglar (not strongly typed) views all the time.
0

Create your own attribute which implements IExceptionFilter. You could also return the same View, and set a value in the ViewData, but an attribute would give you a more standard way to handle it.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.