【发布时间】:2015-05-26 09:32:54
【问题描述】:
我一直在尝试使用 mvc 中的数据注释创建自定义验证。 我需要验证用户是否在视图的文本框中输入了以 0 开头的电话号码,如果不是他们收到错误。不知何故我的逻辑是错误的 我是编码新手,有一点困难请帮忙。
这是我的代码
public class FirstNumberAttributes:ValidationAttribute
{
public FirstNumberAttributes(int firstdigit)
{
_firstdigit = firstdigit;
}
protected override ValidationResult isValid(objectvalue,ValidationContext validationContext)
{
if (value!=null)
{
var valueAsString = value.ToString();
if (valueAsString.Substring(0,1)!=_firstdigit)
{
return new ValidationResult("Number doesnt start with "+_firstdigit);
}
}
return ValidationResult.Success;
}
private readonly int _firstdigit;
}
}
【问题讨论】:
-
试试:
if (valueAsString.Substring(0,1)!=_firstdigit.ToString()) -
或者你可以使用正则表达式来验证你的电话号码,因为我可以输入一个 0 作为第一个数字,然后把它全部搞砸,确保电话号码中也没有字母
-
使用正则表达式验证您的电话号码..
-
MVC 已经为此提供了一个内置的验证属性 - RegularExpressionAttribute。没有理由重新发明轮子。
标签: c# asp.net-mvc-5 data-annotations