asp.net-mvc – ASP.Net MVC不显眼的日期范围验证
发布时间:2020-12-16 03:23:15 所属栏目:asp.Net 来源:网络整理
导读:我有一个包含两个日期字段的表单,开始日期和结束日期.我想验证这两个字段以确保开始日期在结束日期之前或之前.我编写了一个远程验证器并将其分配给两个字段,但这可能会导致同一错误的多条消息.此外,如果我更正了一个日期,则验证不会在未修改的字段上触发,而
我有一个包含两个日期字段的表单,开始日期和结束日期.我想验证这两个字段以确保开始日期在结束日期之前或之前.我编写了一个远程验证器并将其分配给两个字段,但这可能会导致同一错误的多条消息.此外,如果我更正了一个日期,则验证不会在未修改的字段上触发,而不会显示旧的错误消息
如何验证两个日期字段,以验证开始日期是在结束日期之前还是结束日期? 解决方法
几个星期前我遇到了同样的问题.恕我直言我认为解决问题的最佳方法是使用
jquery实现客户端控制.
通过这种方式,您可以在每次更改StartDate或EndDate上的值时调用验证.在这种情况下,最好调用服务器来验证客户端上的数据,因为您没有调用服务器. 在以下链接中,有一个实现客户端验证的过程. 这是我的解决方案: 步骤1:创建属性类以验证连续日期 public class ConsecutiveDateAttribute : ValidationAttribute,IClientValidatable { public ConsecutiveDateAttribute() { ErrorMessage = "The date must be consecutive"; } public override bool IsValid(object value) { return true; } public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata,ControllerContext context) { var rule = new ModelClientValidationRule(); rule.ErrorMessage = FormatErrorMessage(metadata.GetDisplayName()); rule.ValidationParameters.Add("datefield",metadata.PropertyName); rule.ValidationType = "consecutivedate"; yield return rule; } } IsValid方法总是返回true,因为我想验证客户端的值. 第2步:使用属性ConsecutiveDate装饰我想要验证的字段 [Required(),DataType(DataType.Date),ConsecutiveDate()] public DateTime StartDate { get; set; } [Required(),ConsecutiveDate()] public DateTime EndDate { get; set; } 第3步:在页面中实现javascript以验证日期 <script src="@Url.Content("~/Scripts/jquery-1.10.2.js")" type="text/javascript" /> <script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript" /> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> <script type="text/javascript"> if ($.validator && $.validator.unobtrusive) { $.validator.unobtrusive.adapters.addSingleVal("consecutivedate","datefield"); $.validator.addMethod("consecutivedate",function(value,element) { if ($("#StartDate").val() != "" && $("#EndDate").val() != "") return $("#StartDate").val() <= $("#EndDate").val(); // IF both values are not polupated I don't want to validate the field return true; }); } </script> $.validator.addMethod(“consecutivedate”,element):这会为我要验证的每个字段注册验证. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-core – 在ASP.NET vNext过滤器中获取注入对象
- asp.net – 使用ASP MVC 3 RC和.NET 4中的Request.Unvalida
- asp.net-mvc – 从页面到局部视图的asp.net mvc参数
- asp.net-mvc – 在服务器上安装ASP.NET MVC 4
- webforms – ASP.Net Core 1.0是否支持WebForm项目
- ASP.NET MVC SEO URL
- asp.net-mvc – 接受逗号和点作为小数分隔符
- asp.net-mvc – 失败的ASP.NET MVC路由.这是一个错误还是角
- asp.net-mvc-3 – 是否可能获得一个ASP.NET MVC 3项目工作在
- asp.net-mvc – 为什么我在MVC3控制器中的模型中更新的值没
推荐文章
站长推荐
- asp.net-mvc – 从IIS重写http到https的URL重写不
- asp.net – RazorViewEngine.FindView无法找到预
- asp.net – 如何使用ReportService2010命名空间呈
- asp.net-mvc – ASP.Net MVC:控制器中的访问验证
- asp.net-mvc-3 – Glimpse.axd 403ing在IIS上
- asp.net-core – 在将Swashbuckle用于网络核心we
- asp.net – 未捕获TypeError:无法读取未定义的属
- ASP.Net / C#:替换数据绑定字段中的字符
- asp.net – Web API的XML帮助文档未在发布时更新
- 发布ASP.net无法看到程序集
热点阅读