有鉴于MVC3 Razor视图引擎
问题描述:
显示异常消息我有一个模型一样:有鉴于MVC3 Razor视图引擎
public class Post
{
public int PostId { get; set; }
public int ParentId { get; set; }
public string PostTitle { get; set; }
public IEnumerable<Post> ChildPosts { get; set; }
}
我也有我的控制器中添加一个动作返回我上面的模型add.cshtml视图。现在来到我的应用程序运行模式我得到一个异常(像数据库连接异常)。现在我想在add.cshtml页面中显示我的异常消息。
可能吗?如是。我怎样才能完成这项工作。请用示例代码解释。
答
如果你想显示在同一个视图中的错误消息:
[HttpPost]
public ActionResult Add(Post post)
{
try
{
// do your database stuff ...
return RedirectToAction("Success");
}
catch (SomeExceptionouNeedToHandle ex)
{
ModelState.AddModelError("", ex);
return View(post);
}
}
和你Add.cshtml
视图中您可以使用ValidationSummary
助手来显示错误消息:
@Html.ValidationSummary()
另一种可能是有一个通用的错误页面,当一些意外的异常发生时会显示。通常情况下,你应该只捕获你想处理的异常。在控制器操作中捕捉一般异常是一种不好的做法。
这是异常处理的example。
这将显示DBExceptions?为什么我应该这样使用它? – IamStalker 2012-07-08 07:28:57
你是对的。我其实还在编辑我的答案。捕捉一般例外是不好的做法。我已经更新了我的答案。一般未处理的异常应该单独处理并显示在特定的错误视图中。 – 2012-07-08 07:30:46
我仍然不会在视图中使用它,虽然它是修复错误的好方法,但是我会放入日志文件,因为谷歌可能会扫描错误并且它不是很好,从个人经验谈话。 – IamStalker 2012-07-08 09:02:37