asp.net-mvc – 可靠地处理ASP.NET MVC模型绑定错误
发布时间:2020-12-16 04:07:41 所属栏目: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 MVC或ASP.NET MVC2 RC2 – > RTM
- China .NET Conf 2019-.NET技术架构下的混沌工程实践
- asp.net – 当用户有多个角色时,位置授权如何工作?
- 一步一步学asp.net Ajax登录设计实现解析
- asp.net-mvc – 如何将包含动态内容的包添加到asp.net Web优
- 如何在ASP.Net MVC标记中克服我对<%%>的恐惧?
- asp.net-mvc – kendo UI Grid MVC初始页面
- asp.net-mvc – asp.net MVC:本地化
- asp.net – 在C#中,如何将用户重定向到访问被拒绝的错误asp
- asp.net-mvc-4 – ASP .NET MVC 4包含两个部分视图的视图,每