asp.net-mvc-3 – 模型验证/ ASP.NET MVC 3 – 条件必需属性
发布时间:2020-12-15 18:32:14 所属栏目:asp.Net 来源:网络整理
导读:我的ASP.NET MVC 3应用程序遇到麻烦。我有两个属性在我的模型,我只想要其中一个需要在我看来,基于任何一个是空的。所以例如,如果我输入一个电话号码,那么不再需要电子邮件,反之亦然,但如果我同时留下两个空格,那么需要1个,下面是我的模型: [Display
我的ASP.NET MVC 3应用程序遇到麻烦。我有两个属性在我的模型,我只想要其中一个需要在我看来,基于任何一个是空的。所以例如,如果我输入一个电话号码,那么不再需要电子邮件,反之亦然,但如果我同时留下两个空格,那么需要1个,下面是我的模型:
[Display(Name = "Contact Phone Number:")] [MaxLength(150)] public string ContactPhoneNumber { get; set; } [Display(Name = "Contact Email Address:")] [MaxLength(100)] public string ContactEmailAddress { get; set; } 我需要创建一个自定义属性来验证我的模型,如果是,我该如何实现? 解决方法
您可以在类上实现IValidatableObject,并提供实现自定义逻辑的Validate()方法。如果您希望确保提供该逻辑,则将其与客户端上的自定义验证逻辑相结合。我发现这比实现一个属性更容易。
public class ContactModel : IValidatableObject { ... public IEnumerable<ValidationResult> Validate( ValidationContext context ) { if (string.IsNullOrWhitespace( ContactPhoneNumber ) && string.IsNullOrWhitespace( ContactEmailAddress )) { yield return new ValidationResult( "Contact Phone Number or Email Address must be supplied.",new [] { "ContactPhoneNumber","ContactEmailAddress" } ); } } } 要使客户端的所有工作都可以,您需要将以下脚本添加到您的视图中: <script type="text/javascript"> $(function() { $('form').validate(); $('form').rules('add',{ "ContactPhoneNumber": { depends: function(el) { return !$('#ContactEmailAddress').val(); } } }); }); </script> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何从Telerik RadGrid获取“KeyValue”?
- asp.net-mvc-3 – 我可以在ASp.Net MVC中使用System.Web.UI
- asp.net-mvc – Web场中的nHibernate策略
- 将自定义属性添加到asp.NET RadioButton控件
- asp.net中的GridView分页问题
- asp.net-web-api – Azure AD / B2C用户的安全API
- ASP.NET核心EF6身份
- asp.net-mvc – 从DataAnnotations MVC 3向字段添加CSS类
- asp.net – web.config转换未在VS2010中显示
- asp.net-mvc – 从ASP.NET MVC中采用“aspnet_ …”sql表
推荐文章
站长推荐
- database – 为什么Entity Framework类需要一个不
- asp.net-mvc-3 – ASP.NET MVC 3: – 使用数据库
- asp.net-mvc-2 – 动态生成的模型中的ASP.NET MV
- asp.net-mvc – 在C#中,我如何从一个字节[]中知道
- asp.net-mvc – 重用MVC arhitecture;有两层UI:
- asp.net – EntityDataSource对程序绑定有任何性
- asp.net-mvc – 如何在MVC3中托管Web服务?
- 何时使用PageAsyncTask(异步asp.net页面)的示例
- asp.net – Windows Azure启动任务未触发
- asp.net – .NET – 如何调试DLL?
热点阅读