asp.net-mvc – 在asp.net mvc中使用IDataErrorInfo
发布时间:2020-12-16 00:03:14 所属栏目:asp.Net 来源:网络整理
导读:我有一个简单的地址输入应用程序,我正在尝试使用IDataErrorInfo接口作为 explained on the asp.net site. 它适用于可以独立验证的项目,但是当某些项目依赖于其他项目时效果不佳.例如,验证邮政编码取决于国家/地区: private string _PostalCode; public stri
我有一个简单的地址输入应用程序,我正在尝试使用IDataErrorInfo接口作为
explained on the asp.net site.
它适用于可以独立验证的项目,但是当某些项目依赖于其他项目时效果不佳.例如,验证邮政编码取决于国家/地区: private string _PostalCode; public string PostalCode { get { return _PostalCode; } set { switch (_Country) { case Countries.USA: if (!Regex.IsMatch(value,@"^[0-9]{5}$")) _errors.Add("PostalCode","Invalid Zip Code"); break; case Countries.Canada: if (!Regex.IsMatch(value,@"^([a-z][0-9][a-z]) ?([0-9][a-z][0-9])$",RegexOptions.IgnoreCase)) _errors.Add("PostalCode","Invalid postal Code"); break; default: throw new ArgumentException("Unknown Country"); } _PostalCode = value; } } 因此,您只能在设置国家/地区后验证邮政编码,但似乎无法控制该订单. 我可以使用IDataErrorInfo中的错误字符串,但这不会显示在字段旁边的Html.ValidationMessage中. 解决方法
对于更复杂的业务规则验证,而不是类型验证,可能更好地实现设计模式,例如服务层.您可以检查ModelState并根据您的逻辑添加错误.
您可以在此处查看Rob Conroys模式示例 http://www.asp.net/learn/mvc/tutorial-29-cs.aspx 关于数据注释的这篇文章也很有用. http://www.asp.net/learn/mvc/tutorial-39-cs.aspx 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 在会话中存储购物车
- ASP.NET WEB应用程序(.network4.5)mvc 程序的结构解读
- asp.net-mvc – 有一种方法我可以在ASP中调试路由. MVC5?
- asp.net-mvc – 保持viewdata在RedirectToAction
- 支持Ajax跨域访问ASP.NET Web Api 2(Cors)的示例教程
- Asp.net MVC – 多语言网站
- asp.net – 使用json仅序列化对象的一部分
- asp.net-mvc – 带有实体框架的ASP.NET MVC
- asp.net-mvc – 为Orchard创建一个模块,用于存储来自前端的
- asp.net – 为什么我要将UnitOfWork与Repository Pattern一
推荐文章
站长推荐
- ASP.NET VB – 从类型’DBNull’到类型’String’
- 获取当前ASP.NET Web Api 2操作的URL
- asp.net-mvc – 如果是流媒体,则无法发布网站
- 如何将TextBox双向绑定到ASP.NET中的代码隐藏属性
- asp.net-mvc – 如何降级Visual Studio 2012中的
- asp.net – WebForm_DoPostBackWithOptions没有使
- asp.net – 单个应用程序中的多个母版页
- 在ASP.NET MVC中模拟User.Identity
- asp.net-mvc – Rotativa和Bootstrap网格样式
- 在ASP.Net Web应用程序中使用Rails应用程序中的用
热点阅读