私はASP.NET MVC 3 Appで電話番号のカスタムバリデータを実装しようとしています。私はその後、私のモデルクラスで、私は次のようしているASP.NET MVC 3 - カスタムバリデータ
public class PhoneNumberValidator : ValidationAttribute
{
public PhoneNumberValidator() : base("The Phone Number is not Valid")
{
}
public override bool IsValid(object value)
{
if (value != null)
{
string phonenumber = value.ToString();
var regex = new Regex(@"^(?:[0-9]+(?:-[0-9])?)*$");
if (regex.IsMatch(phonenumber))
{
return true;
}
else
{
return false;
}
}
return false;
}
}
以下のようにカスタムバリデータのコードをwriitenています
[Display(Name = "PhoneNumber")]
[Required(ErrorMessage = "Is Phone Number Required")]
[PhoneNumberValidator]
public string PhoneNumber { get; set; }
をしかし、私はそれを私のアプリを実行し、ページに進む]ボタンをクリックしたとき私はブレークポイントを設定した場合、値が文字列phonenumberに読み込まれていることがわかりますが、入力された値が文字の場合はエラーをスローしません。私は何か簡単なものを逃しています
はhttp://stackoverflow.com/questions/2689444/custom-dataannotations-を参照してください。バリデータから得たregularexpression属性 –