asp.net-mvc – 地址字段的自定义ASP.NET MVC验证摘要
我正试图找出验证单页结帐的最佳方法.
它包含 : >船舶地址 地址类明显包含名字,姓氏,街道1,街道2,城市,州,邮编,电话等. 假设用户在输入任何内容之前单击“确定” – 然后您最终会遇到十几个或更多验证错误,从而为您提供一大块看起来很难看的红色文本. 我想将地址验证为单个实体,并在适当时给出智能错误 – 例如“不完整地址”或更具体的错误.但我仍然希望能够突出显示有问题的每个字段.我现在看不到一种简单的方法,因为显然Html.ValidationSummary助手会显示每个字段. 所以我想把摘要显示为: "Your shipping address is incomplete" 并以红色Zip和City突出显示. 我想我必须做一个完全自定义的ValidationSummary,甚至可能是一个完全自定义的数据结构. 任何验证框架都可以使这样的摘要更容易,其中摘要应显示智能摘要,而不仅仅是每个字段错误. 编辑:MVC 2 RC现在支持模型级错误.
有人得到了如何做到这一点的实际样本? 解决方法
您可以使用复合Address属性并将整个地址验证为一个单元:
public class Address { public string Street { get; set; } public string City { get; set; } public string Zip { get; set; } } public class Order { [Required] public string FirstName { get; set; } [Required] public string LastName { get; set; } [AddressRequired("Your shipping address is incomplete")] public Address ShipTo { get; set; } [AddressRequired("Your billing address is incomplete")] public Address BillTo { get; set; } // you could do this if you still need 1:1 mapping for model binding public string ShippingCity { get { return ShipTo.City; } set { ShipTo.City = value; } } } 验证属性看起来像这样: public class AddressRequiredAttribute : ValidationAttribute { ... public override bool IsValid(object value) { var address = value as Address; if (address != null) { ... } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 带有UpdatePanel Viewstate问题的JQuery BlockU
- asp.net – RequiredFieldValidator要求用户单击两次
- IIS部署的ASP.NET 5 BETA 8站点到IIS会给出HTTP错误500.19
- asp.net – 如何为我的网站实现Facebook“赞”按钮
- asp.net-core – 具有取消令牌的自定义AspCore中间件
- ASP.NET的临时文件下载链接
- 如何将旧版ASP应用程序转换为ASP.NET?
- 体验使用gcServer =“true”为.NET设置垃圾回收器
- asp.net – VB.Net IIf函数添加SqlParameter
- asp.net – 如何获得大型LinkedIn图像共享格式
- asp.net – 将HyperLinkField设置为Javascript U
- asp.net – 如何将Web应用程序项目转换为类库项目
- asp.net-mvc – 为什么Microsoft堆栈说成本高昂?
- ASP.NET MVC 3使用身份验证
- 调试 ASP.NET Core 2.0 源代码
- asp.net – 禁用aspnet.friendlyurl的平板电脑移
- asp-classic – 经典ASP:RecordSet字段没有任何
- asp.net-mvc – 如何检查剃刀中的viewbag的内容
- Asp.net core 2.2 的一些特点
- asp.net – ReportViewer控件返回空白页面