ASP.MVC处理错误

时间:2010-08-26 14:45:39

标签: c# asp.net-mvc

在ASP.NET Web窗体中,我可以轻松实现:

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

现在问题是:我如何在ASP.NET MVC中做同样的事情? 我一直在寻找它,我找到的只是[HandleError]属性。我不想将用户重定向到“Error.aspx”查看是否发生异常。我想在Web窗体中显示同一页面中的错误消息。 / p>

任何想法?

3 个答案:

答案 0 :(得分:2)

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

在您的视图或母版页中,检查是否设置了ViewData [“Error”]。如果是,请显示您的错误div。

<% if (ViewData["Error"] != null)
{
    <div class="error"><%=html.encode(ViewData["Error"]) %></div>
}
%>

答案 1 :(得分:1)

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

然后在视图中

<%= Html.ValidationSummary() %>

答案 2 :(得分:0)

创建自己的属性,实现IExceptionFilter。您也可以返回相同的View,并在ViewData中设置一个值,但是一个属性可以为您提供更标准的处理方式。