ASP.NET 日期数据服务端验证失败的原因
2009-11-11 10:41
239 查看
Mvc 2.0 Preview2 增加了客户端验证的功能,但实际使用中,有同事发现正则表达式验证日期输入时,客户端验证成功,而服务端验证总失败。
检查同事的代码,并没有发现明显的问题:(注,此处正则表达式经过简化)
[RegularExpression("^20\d\d-\d?\d-\d\d$")]
object somedate {get;set;}
运行,在文本框中输入 2009-12-30 ,服务端提示正则表达式匹配失败。
不解,反编译RegularExpressionAttribute,其中IsValidate代码如下:
public override bool IsValid(object value)
{
string str = Convert.ToString(value, CultureInfo.CurrentCulture);
if (string.IsNullOrEmpty(str))
{
return true;
}
Match match = this.Regex.Match(str);
return ((match.Success && (match.Index == 0)) && (match.Length == str.Length));
} 终于发现问题,原来,日期数据被Convert.ToString后,生成的日期是带时间的,如:2009-12-30 0:00:00,所以正则匹配总是失败。因此,匹配日期的时候,应该为正则表达式留出时间数据的位置。这一点,WebForm和Mvc都是一致的。
检查同事的代码,并没有发现明显的问题:(注,此处正则表达式经过简化)
[RegularExpression("^20\d\d-\d?\d-\d\d$")]
object somedate {get;set;}
运行,在文本框中输入 2009-12-30 ,服务端提示正则表达式匹配失败。
不解,反编译RegularExpressionAttribute,其中IsValidate代码如下:
public override bool IsValid(object value)
{
string str = Convert.ToString(value, CultureInfo.CurrentCulture);
if (string.IsNullOrEmpty(str))
{
return true;
}
Match match = this.Regex.Match(str);
return ((match.Success && (match.Index == 0)) && (match.Length == str.Length));
} 终于发现问题,原来,日期数据被Convert.ToString后,生成的日期是带时间的,如:2009-12-30 0:00:00,所以正则匹配总是失败。因此,匹配日期的时候,应该为正则表达式留出时间数据的位置。这一点,WebForm和Mvc都是一致的。
相关文章推荐
- [导入]Ajax即时实现服务端数据验证(Asp.net 2.0)(示例代码下载)
- AjaxPro.NET框架完成服务端即时数据验证(Asp.net 2.0)(示例代码下载)
- Ajax即时实现服务端数据验证(Asp.net 2.0)(示例代码下载)
- Ajax即时实现服务端数据验证(Asp.net 2.0)(示例代码下载)
- AjaxPro.NET框架实现服务端即时数据验证(Asp.net 2.0)(示例代码下载)
- [导入]AjaxPro.NET框架实现服务端即时数据验证(Asp.net 2.0)(示例代码下载)
- AjaxPro.NET框架实现服务端即时数据验证(Asp.net 2.0)(示例代码下载)
- AjaxPro.NET框架实现服务端即时数据验证(Asp.net 2.0)(示例代码下载)
- asp.net服务端使用正则表达式验证数据合法性.
- AjaxPro.NET框架实现服务端即时数据验证(Asp.net 2.0)(示例代码下载)
- Ajax即时实现服务端数据验证(Asp.net 2.0)(示例代码下载)
- AjaxPro.NET框架实现服务端即时数据验证(Asp.net 2.0)(示例代码下载)
- Ajax即时实现服务端数据验证(Asp.net 2.0)(示例代码下载)
- ASP.NET Core教程【二】从保存数据看Razor Page的特有属性与服务端验证
- ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
- Asp.net+Extjs实现对GridPanel分页、行内编辑、增加、删除、弹出新窗体增加、数据验证、编辑指定列、数据格式转换等功能
- JQuery Form Ajax提交Asp.Net表单时的验证视图状态 MAC 失败
- ASP.NET MVC实践系列3-服务器端数据验证
- 基于ASP.NET Core数据保护生成验证token示例
- asp.net 数据验证控件的使用实例