加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 使用ASP.NET MVC 3.0进行日期验证

发布时间:2020-12-16 00:13:43 所属栏目:asp.Net 来源:网络整理
导读:我的MVC UI上的Date字段名为“startDate”,用户使用jquery日期选择器选择日期.因为我想验证所选日期不应该是过去2个月和未来2个月. 我写了下面的代码来验证日期. public sealed class DateAttribute : DataTypeAttribute { /// summary /// Initializes a ne
我的MVC UI上的Date字段名为“startDate”,用户使用jquery日期选择器选择日期.因为我想验证所选日期不应该是过去2个月和未来2个月.

我写了下面的代码来验证日期.

public sealed class DateAttribute : DataTypeAttribute
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="EmailAddressAttribute"/> class.
        /// </summary>
        public DateAttribute() : base(DataType.Date)
        {
        }

        /// <summary>
        /// Checks that the value of the data field is valid.
        /// </summary>
        /// <param name="value">The data field value to validate.</param>
        /// <returns>
        /// true always.
        /// </returns>
        public override bool IsValid(object value)
        {
            DateTime inputDate = Convert.ToDateTime(value,CultureInfo.CurrentCulture);

            if (inputDate.Date >= DateTime.Now.Date.AddMonths(-2) && inputDate.Date <= DateTime.Now.Date.AddMonths(2))
                return true;

            return false;
        }
    }

但问题是,它用于验证日期字段的服务器.我怎么能与客户验证相同.

谢谢,
-Naren

解决方法

function IsValid(object) {  
    var theDate = new Date(object);  
    var pointfrom = (theDate.getFullYear() * 100) + (theDate.getMonth());  
    var today = new Date();  
    if (pointfrom > (today.getFullYear() * 100) + (today.getMonth()) + 2) return false;  
    if (pointfrom < (today.getFullYear() * 100) + (today.getMonth()) - 2) return false;  
    return true;  
 }

我把年份提高了100,从而避免了跨年比较

然后在你的SPAN id =“x”onBlur =“IsValid(this.value)”> 2001-01-01

麦克风

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读