1

mvc 4では(ただし、すべてのmvcバージョンで)DbEntityValidationExceptionをインターセプトする必要があります。

このフェーズでは、このオブジェクトにあるエラーを単純なログに表示する必要があります。

キャッチでは、私はこのコードを持っています:

foreach (var eve in EventityValidationErrors)
   {
        foreach(var ve in eve.ValidationErros)
       {
         Console.Writeline(ve.PropertyName,ve.ErrorMessage)
       }
    }

とても便利です。

今、私の仕事は、この例外情報(開発フェーズのみ)をビューに表示しようとしています。

誰かがそれを行うための迅速な方法があるかどうか知っていますか?(理想的には外部nugetコンポーネントを使用)

4

1 に答える 1

0

Elmahにはnugetパッケージがあり、詳細なエラーをすばやく表示する方法を提供します。

キャッチを少し変更する必要があります。つまり、例外をキャッチし、データを含む新しい例外を作成してから、この例外をスローしてElmahに処理させます。

catch(DbEntityValidationException dbEx)
{
   var sb = new StringBuilder();
   foreach (var eve in dbEx.EntityValidationErrors)
   {
        foreach(var ve in eve.ValidationErrors)
       {
         sb.Append(ve.PropertyName);
         sb.Append(ve.ErrorMessage); //format to your needs
       }
    }
  var detailedException = new Exception(sb.ToString(), dbEx)
}

未処理のMVC例外をすべてキャッチするようにElmahをセットアップする方法に関するドキュメントはたくさんあります。

于 2012-11-21T11:33:45.173 に答える