2012-07-08 81 views
1

顯示異常消息我有一個模型一樣:有鑑於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頁面中顯示我的異常消息。

可能嗎?如是。我怎樣才能完成這項工作。請用示例代碼解釋。

回答

3

如果你想顯示在同一個視圖中的錯誤消息:

[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

0

我建議你使用Elmah異常處理,你可以查看我給你的這兩個鏈接。

link 1

link2