如何在不重定向到MVC 4中的新视图的情况下显示异常的错误消息

时间:2018-06-14 11:12:49

标签: asp.net-mvc-4

我想捕获可能从类库方法冒出的异常,以及调用它的操作,并且希望在视图中显示错误而不实际重定向到新视图。我已经覆盖了我的控制器中的OnException方法,并创建了一个局部视图来显示错误但是当发生错误时,部分视图没有呈现在我希望它显示的位置,而是我有一个表并且它将被替换错误信息不是我想要的,更不用说表格在视图中的位置与错误应该显示的位置不同。我没有对MVC进行过多的异常处理,因此我不知道我的方法是否完全错误。

我的异常代码

        protected override void OnException(ExceptionContext filterContext)
    {
        Exception ex = filterContext.Exception;
        filterContext.ExceptionHandled = true;
        var controllerName = (string)filterContext.RouteData.Values["controller"];
        var actionName = (string)filterContext.RouteData.Values["action"];
        var exp = new HandleErrorInfo(filterContext.Exception, controllerName, actionName);

        //Assigns error message to property for message in view model
        ReceivngFormViewModel viewModel = new ReceivngFormViewModel
        {
            ErrorMessage = exp.Exception.Message
        };

        filterContext.Result = new PartialViewResult()
        {
            //_Error is the partial view
            ViewName = "_Error",
            ViewData = new ViewDataDictionary(viewModel)
        };
    }

1 个答案:

答案 0 :(得分:0)

this code help you use ModelState.AddModelError  
**Controller**
Model obj=new Model();
     try{

    }
    cathch(exception ex){
    ModelState.AddModelError("objectname", ex.tostring());
    }
    return obj;
    **Viwe**
    @Html.ValidationMessageFor(model => model.objectname)