電話番号を認証しようとしています。そのため、次のようなデータ注釈を宣言します。
[IsCellAcceptable(ErrorMessageResourceName = "IsCellAcceptable", ErrorMessageResourceType = typeof(Resources.PageResources))]
[DataType(DataType.PhoneNumber)]
[Display(Name = "UserCell", ResourceType = typeof(Resources.PageResources))]
public String Cell { get; set; }
Cell が 0 999 999 99 99 に等しい場合、それを有効なものとして返し、09999999999 のように保存したいのですが、IsValid 関数はそれを検証するだけで、操作することはできません。
public class IsCellAcceptableAttribute : ValidationAttribute
{
public IsCellAcceptableAttribute()
: base()
{
}
public override bool IsValid(object value)
{
if (value == null)
return true;
if (value == "")
return true;
string phoneOutput = string.Empty;
string phoneInput = Convert.ToString(value);
phoneInput = phoneInput.Replace(" ", "");
foreach (char ch in phoneInput)
{
if (Char.IsNumber(ch))
{
phoneOutput += ch;
}
else
{
return false;
}
}
if (phoneOutput.Length <= 14 && phoneOutput.Length >= 10)
{
return true;
}
return false;
}
私の質問は、検証時にオブジェクトを操作するにはどうすればよいですか?