asp.net-mvc-2 – 具有异常参数的ModelState.AddModelError的用
发布时间:2020-12-16 03:51:38 所属栏目:asp.Net 来源:网络整理
导读:有没有使用 AddModelError()的重载将异常作为参数? 如果我在控制器中包含以下代码: ModelState.AddModelError( "",new Exception("blah blah blah") );ModelState.AddModelError( "","Something has went wrong" );if (!ModelState.IsValid) return View(
有没有使用
AddModelError()的重载将异常作为参数?
如果我在控制器中包含以下代码: ModelState.AddModelError( "",new Exception("blah blah blah") ); ModelState.AddModelError( "","Something has went wrong" ); if (!ModelState.IsValid) return View( model ); 以下是我的观点: <%= Html.ValidationSummary( "Please correct the errors and try again.") %> 然后,错误摘要中仅显示“Something出错”文本. 解决方法
检查源ModelError接受两者,并且用于模型类型转换失败.
在这种特殊情况下,它是沿着异常树向下并在必要时获取内部异常以找到实际的根错误而不是通用的顶级异常消息. foreach (ModelError error in modelState.Errors.Where(err => String.IsNullOrEmpty(err.ErrorMessage) && err.Exception != null).ToList()) { for (Exception exception = error.Exception; exception != null; exception = exception.InnerException) { if (exception is FormatException) { string displayName = propertyMetadata.GetDisplayName(); string errorMessageTemplate = GetValueInvalidResource(controllerContext); string errorMessage = String.Format(CultureInfo.CurrentCulture,errorMessageTemplate,modelState.Value.AttemptedValue,displayName); modelState.Errors.Remove(error); modelState.Errors.Add(errorMessage); break; } } } 正如您所看到的,它循环遍历ModelError中的异常以查找FormatException.这是我在MVC 2和MVC 3中可以找到的唯一真正的参考. 这说明经常使用它可能是不必要的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-4 – 下划线字符串模型绑定器
- ADO.NET读书笔记系列
- 为什么[System.ComponentModel.ToolboxItem(false)]默认来自
- asp.net-mvc – 抽象的CRUD控制器是个好主意吗?
- asp.net – 如何和在哪里调用Database.EnsureCreated和Data
- 有没有替代ASP.NET的C#web开发?
- asp.net – Page.RouteData.Values对于一个页面是空的而不是
- asp.net-mvc-3 – ASP.NET MVC3 Razor:没有@if或@foreach可
- 动手造轮子:实现一个简单的 AOP 框架
- asp.net-mvc – asp.net mvc – 完全关闭DB中的自定义字段构
推荐文章
站长推荐
- asp.net – 将更改部署到global.asax
- 初识ABP vNext(2):ABP启动模板
- asp.net – DirectoryServicesCOMException 8007
- asp.net-mvc-3 – MVC3剃须刀:是否可以渲染传统
- MVVM(Knockout.js)的新尝试:多个Page,一个View
- asp.net-mvc – 在同一页面显示搜索表单及其结果
- asp.net – 为会话设置文化
- asp.net-mvc – 如何在主机上运行ASP.Net MVC应用
- asp.net-mvc – 带参数的MVC redirecttoaction与
- 在ASP.net Webforms中,如何检测有人按下哪个文本
热点阅读