ここで説明されているような同様の問題があり ます。コントローラーの一般化されたエラー処理メカニズムが必要です。エラーが発生した場合、ModelState にエラーが追加されたエラーが発生した同じビューを表示したいと考えています。私はこのようなものを持っています:
public override void OnException(ExceptionContext filterContext)
{
filterContext.Controller.TempData["UnhandledException"] = filterContext.Exception;
filterContext.ExceptionHandled = true;
((Controller)filterContext.Controller).ModelState.AddModelError(
((BaseException)filterContext.Exception).Message,
((BaseException)filterContext.Exception).StackTrace
);
filterContext.Result = new ViewResult
{
ViewName = this.View,
TempData = filterContext.Controller.TempData,
ViewData = filterContext.Controller.ViewData,
};
}
しかし、Index.cshtml ln で null 参照例外を受け取っています。3 エラー メッセージ: タイプ 'System.NullReferenceException' の例外が App_Web_dc1p1y1y.dll で発生しましたが、ユーザー コードで処理されませんでした
私のindex.cshtmlからのコード:
@model MyProject.Web.Models.UserProfileViewModel
@{
ViewBag.Title = "User profile";
}
<section>
<div class="noPadding">
<div class="col-xs-12 noPadding">
<h2>My profile</h2>
</div> etc....
だから私はいくつかのエラービューにリダイレクトしたくありませんが、エラーが発生した保存ビューにエラーを表示したいと思います。
私は何を間違っていますか?