我想捕获可能从类库方法冒出的异常,以及调用它的操作,并且希望在视图中显示错误而不实际重定向到新视图。我已经覆盖了我的控制器中的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)
};
}
答案 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)