1

私は次のようなモデルを持っています:

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 ページに表示したいと考えています。

出来ますか?もし、そうなら。どうすればこの作業を行うことができますか。サンプルコードで説明してください。

4

2 に答える 2

4

同じビューにエラー メッセージを表示する場合:

[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()

もう 1 つの可能性は、予期しない例外が発生したときに表示される一般的なエラー ページを用意することです。通常、処理したい例外のみをキャッチする必要があります。コントローラー アクションで一般的な例外をキャッチするのは悪い習慣です。

例外処理の例を次に示します。

于 2012-07-08T07:24:58.047 に答える
0

Elmah 例外処理を使用することをお勧めします。私が提供した 2 つのリンクを確認してください。

リンク 1

リンク2

于 2012-07-08T07:28:24.980 に答える