asp.net-mvc – 可靠地处理ASP.NET MVC模型绑定错误
发布时间:2020-05-24 15:10:50 所属栏目:asp.Net 来源:互联网
导读:我正在使用MVC控制器开发REST API.我想处理所有模型绑定错误,并以用户友好的方式将它们报告给客户端.在我的自定义模型绑定器中,我已经抛出了一个异常处理程序被认为是安全的特殊异常并显示给客户端. 但是,当默认模型绑定器看到无效值(例如,int的asdf)时,它似
|
我正在使用MVC控制器开发REST API.我想处理所有模型绑定错误,并以用户友好的方式将它们报告给客户端.在我的自定义模型绑定器中,我已经抛出了一个异常处理程序被认为是安全的特殊异常并显示给客户端. 但是,当默认模型绑定器看到无效值(例如,int的asdf)时,它似乎完全忽略它(如果参数不是必需的)或抛出一个普通的ArgumentException(如果需要参数).是否可以可靠地处理这两种情况并获取参数名称和相关错误,而无需手动重写整个活页夹? 我宁愿不显示ArgumentException,因为它显示了客户端不应该关心的方法和命名空间名称.如果它是可以避免的,我也不会解析ArgumentException消息,并且这不能解决完全忽略非必需参数的无效值的问题. 解决方法您可以在模型上实现IValidatableObject接口.在那里,您可以创建自己的验证逻辑,替换当前具有的必需属性验证.public class Model : IValidatableObject {
public int MyIntProperty { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) {
if (MyIntProperty == 0) {
yield return new ValidationResult("Please provide a valid value for MyIntProperty.",new[] { "MyIntProperty" });
}
}
}
在控制器中,您可以检查ModelState.Errors集合以查看验证错误.此外,如果您使用强类型视图和HTML表单助手,这将在客户端生成错误CSS类. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何在标记中使用扩展和实用程序方法?
- asp.net“记住我”的cookie
- asp.net – 如何连接RDLC表达式中的值?
- Asp.net MVC scheduler的实现方法详解
- asp.net-mvc-3 – ASP.NET MVC – 防止Ajax.ActionLinks上的
- asp.net – IIS 7.5不加载静态html页面
- 为什么用户信息存储在ASP.NET的默认成员资格提供者的两个不
- asp.net-mvc – 什么是AsyncManager.OutstandingOperations
- 使用WiX设置ASP.Net版本
- asp.net – 发送多个模型以查看MVC 4
推荐文章
站长推荐
- asp.net – Jquery datepicker:验证日期mm/dd/y
- asp.net – 使用jquery调用webmethod时始终获得“
- asp.net-mvc – 奇怪的错误w / NinjectValidator
- ASP.NET Core WebApi将错误消息返回给AngularJS
- asp.net-mvc – 如何在asp.net mvc中检查模型验证
- 是*不*使用asp.net成员资格提供程序一个坏主意?
- asp.net-mvc – 可以为MVC Razor Layout指定可搜
- asp.net-mvc – ASP.NET MVC的最佳实践
- asp.net-mvc-2 – TempData未按预期清除
- asp.net-mvc – 使用RedirectToAction单元测试AS
热点阅读
