Asp.Net MVC验证 – 依赖字段
发布时间:2020-12-16 04:11:58 所属栏目:asp.Net 来源:网络整理
导读:我目前正在尝试通过MVC验证,并且遇到了一些需要字段的问题,具体取决于另一个字段的值.下面是一个例子(我还没想到) – 如果PaymentMethod ==“Check”,则需要ChequeName,否则可以通过. [Required(ErrorMessage = "Payment Method must be selected")]public o
我目前正在尝试通过MVC验证,并且遇到了一些需要字段的问题,具体取决于另一个字段的值.下面是一个例子(我还没想到) – 如果PaymentMethod ==“Check”,则需要ChequeName,否则可以通过.
[Required(ErrorMessage = "Payment Method must be selected")] public override string PaymentMethod { get; set; } [Required(ErrorMessage = "ChequeName is required")] public override string ChequeName { get; set; } 我正在为[Required]使用System.ComponentModel.DataAnnotations,并且还扩展了ValidationAttribute以尝试使其工作,但我无法通过变量来进行验证(下面的扩展名) public class JEPaymentDetailRequired : ValidationAttribute { public string PaymentSelected { get; set; } public string PaymentType { get; set; } public override bool IsValid(object value) { if (PaymentSelected != PaymentType) return true; var stringDetail = (string) value; if (stringDetail.Length == 0) return false; return true; } } 执行: [JEPaymentDetailRequired(PaymentSelected = PaymentMethod,PaymentType = "Cheque",ErrorMessage = "Cheque name must be completed when payment type of cheque")] 有没有人有这种验证的经验?将它写入控制器会更好吗? 谢谢你的帮助. 解决方法
我会在模型中编写验证逻辑,而不是控制器.控制器应该只处理视图和模型之间的交互.由于它是需要验证的模型,我认为它被广泛认为是验证逻辑的地方.
对于依赖于另一个属性或字段的值的验证,我(遗憾的是)没有看到如何完全避免在模型中为其编写一些代码,如Wrox ASP.NET MVC书中所示,有点像: public bool IsValid { get { SetRuleViolations(); return (RuleViolations.Count == 0); } } public void SetRuleViolations() { if (this.PaymentMethod == "Cheque" && String.IsNullOrEmpty(this.ChequeName)) { RuleViolations.Add("Cheque name is required","ChequeName"); } } 以声明方式进行所有验证会很棒.我确信你可以创建一个RequiredDependentAttribute,但那只能处理这种逻辑.甚至稍微复杂一点的东西需要另一个非常具体的属性,等等,它会很快变得疯狂. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.Net MVC:你可以在AJAX / jQuery调用中使用数据注释/验
- asp.net – 无法在Page回调中调用Response Redirect?
- 我创造了有史以来最糟糕的标签汤(ASP.NET MVC 2)
- asp.net-web-api – 带协议缓冲区的ASP.NET WebApi – 错误
- 什么用作asp.net会员后端? RavenDB或SqlServer
- Asp.net 5 MVC 6,添加facebook电子邮件的权限
- asp.net – 如何从HTML 5多文件输入元素捕获上传的文件
- ASP.NET MVC Razor:三元
- asp.net – 如何保护我的通用处理程序调用?
- asp.net – .除了抛出异常
推荐文章
站长推荐
- asp.net-mvc – 保护抓取工具中的网站内容
- asp.net – Visual Studio 2008 – 解决方案的条
- ASP.NET MemoryCache跨应用程序共享
- asp.net-mvc – Firefox 4不呈现部分页面
- asp.net-mvc-3 – MVC 3 knockoutjs:在使用Edit
- .NET HttpSessionState案例不敏感
- asp.net-mvc – Sitecore视图渲染和控制器渲染助
- asp.net-mvc – WCF Web Api作为asp.net mvc 3应
- asp.net-mvc – 是否可以在MVC控制器中的一个操作
- asp.net – .NET Framework 4.0是否需要重启?
热点阅读