私は次のモデルを持っています:
public class FormularModel
{
[Required]
public string Position { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required]
public string Webcode { get; set; }
}
必要な検証は正常に機能します。しかし、DataTypeを試しても反応しません。
メールコントロール用のかみそりコードは次のとおりです。
@Html.TextBoxFor
(model => model.Email,
new { @style = "width: 175px;", @class = "txtField" }
) *
だから、誰もが答えを知っていますか?
TIA
DataType
属性は、検証ではなくフォーマットの目的で使用されます。
メール検証に ASP.NET MVC 3 Futures を使用することをお勧めします。
サンプルコード:
[Required]
[DataType(DataType.EmailAddress)]
[EmailAddress]
public string Email { get; set; }
.NET Framework 4.5
を使用している場合は、 System.ComponentModel.DataAnnotations.EmailAddressAttribute
にあるEmailAddressAttribute
が組み込まれています。
DataAnnotationsExtensions プロジェクトには、使用できる Email属性 があります。
ソースコード(Reflectorによってリバースエンジニアリングされた)を見て、DataType
バリアントは実際には実装されていません! (これはDateType.Date
)
そのため、うまくいきません。
個人的にRegexValidation
をメールに使用します。
わかりやすくするために、クラスIsValid
のDataTypeAttribute
の実装を次に示します。
public override bool IsValid(object value)
{
return true;
}