Обработка ошибок ASP.NET MVC - отображать ее в том же частичном представлении

У меня похожая проблема, как описано здесь. Я хотел бы иметь обобщенный механизм обработки ошибок для контроллеров, если возникает ошибка, я хотел бы отобразить то же представление, где произошла ошибка с добавленными ошибками в 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. 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....

Поэтому я не хочу перенаправлять в какое-либо представление "Ошибка", но я хотел бы отобразить ошибку в представлении "samve", где оно произошло.

Что я делаю неправильно?

0 ответов

Другие вопросы по тегам