私が書いている 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;
}
}
次に、Model クラスに次のものがあります。
[Display(Name = "PhoneNumber")]
[Required(ErrorMessage = "Is Phone Number Required")]
[PhoneNumberValidator]
public string PhoneNumber { get; set; }
ただし、アプリを実行してページの続行ボタンをクリックすると、入力された値が文字の場合はエラーがスローされませんが、ブレークポイントを設定すると、値が文字列 phonenumber に読み込まれていることがわかります。簡単なものがありませんか?