有鉴于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

+0

这将显示DBExceptions?为什么我应该这样使用它? – IamStalker 2012-07-08 07:28:57

+1

你是对的。我其实还在编辑我的答案。捕捉一般例外是不好的做法。我已经更新了我的答案。一般未处理的异常应该单独处理并显示在特定的错误视图中。 – 2012-07-08 07:30:46

+0

我仍然不会在视图中使用它,虽然它是修复错误的好方法,但是我会放入日志文件,因为谷歌可能会扫描错误并且它不是很好,从个人经验谈话。 – IamStalker 2012-07-08 09:02:37

我建议你使用Elmah异常处理,你可以查看我给你的这两个链接。

link 1

link2