在ASP.NET Web窗体中,我可以轻松实现:
[...]
try
{
DateTime date = Convert.ToDateTime("abc");
}
catch(Exception ex)
{
lblErrorMessage.Text = ex.Message;
}
现在问题是:我如何在ASP.NET MVC中做同样的事情? 我一直在寻找它,我找到的只是[HandleError]属性。我不想将用户重定向到“Error.aspx”查看是否发生异常。我想在Web窗体中显示同一页面中的错误消息。 / p>
任何想法?
答案 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中设置一个值,但是一个属性可以为您提供更标准的处理方式。