asp.net-mvc – 数据模型需要两个属性之一
发布时间:2020-12-16 04:17:13 所属栏目:asp.Net 来源:网络整理
导读:假设我有一个带有FirstName和LastName的Person类.我希望用户必须在UI中输入两个值中的至少一个,但他可能不必输入每个值. 如果我在每个上面放置必需的属性/数据注释,那么这两者都是必需的. 如何为此规则进行服务器端验证(也使用客户端验证)? 解决方法 您可以
假设我有一个带有FirstName和LastName的Person类.我希望用户必须在UI中输入两个值中的至少一个,但他可能不必输入每个值.
如果我在每个上面放置必需的属性/数据注释,那么这两者都是必需的. 如何为此规则进行服务器端验证(也使用客户端验证)? 解决方法
您可以为此使用自定义属性.简而言之,自定义属性将检索这两个值,然后确保至少有一个值具有值.有关更多信息,请参见
this page.这是一个例子(未经测试的代码):
[AttributeUsage(AttributeTargets.Property,AllowMultiple =false,Inherited = false)] public class ValidatePersonName: ValidationAttribute { protected override ValidationResult IsValid(object value,ValidationContext validationContext) { string FirstName = (string)validationContext.ObjectType.GetProperty("FirstName").GetValue(validationContext.ObjectInstance,null); string LastName = (string)validationContext.ObjectType.GetProperty("LastName").GetValue(validationContext.ObjectInstance,null); //check at least one has a value if (string.IsNullOrEmpty(FirstName) && string.IsNullOrEmpty(LastName)) return new ValidationResult("At least one is required!!"); return ValidationResult.Success; } } 用法: class Person{ [ValidatePersonName] FirstName{get;set;} LastName{get;set;} } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-4 – 如何获取没有隐藏输入的AntiForgeryToken
- asp.net-mvc – 在ASP.NET MVC中,<%=和<%:?有什么区别
- 如何通过Remoting实现双向通信
- asp.net-mvc – 如何将表单中的复选框序列化为Json数据
- 将ASP.NET网站转换为原生Android / iOS应用程序
- asp-classic – 如何使用Microsoft.XMLHTTP指定代理配置?
- entity-framework – ViewModels和MVC中Entity Framework的
- 在ASP.Net应用程序和最佳实践中使用WCF
- ASP.NET 两个Repeater,实现合并单元格效果(HTML DEMO) 201
- asp.net – 服务器端/客户端或两者用户输入验证
推荐文章
站长推荐
- asp.net – 用于Basic或Windows身份验证的无限重
- 如何使用ASP.NET MVC增加对AJAX JSON响应的2MB限
- 如何在asp.net-mvc单元测试中生成视图?
- Asp.Net GridView获取TemplateField上的当前行
- asp.net-mvc – 如何在验证汇总中显示MVC 3客户端
- ASP.NET -- WebForm -- HttpRequest类的方法和属
- ASP.NET MVC的客户端验证:jQuery的验证
- asp.net – 在App_Start中编辑MiniProfiler.cs后
- asp.net – 在网站上放置广告的最佳做法?
- 文件上传 – 是否可以在上传文件的asp.net webap
热点阅读