モデルオブジェクトに。という文字列プロパティがありますEmailAddress
。Html.EditorFor
このページのすべての文字列プロパティの入力フィールドと、正常に機能するカスタムエディタテンプレートをレンダリングするために使用しています。ただし、EmailAddressAttribute
このプロパティにを追加すると、EditorForはプロパティを文字列型として検出しなくなったか、少なくとも、文字列用のエディタテンプレートの使用を拒否したように見えます。
これは機能します:
[DisplayName("EmailAddress")]
[Required(ErrorMessage = "Required")]
[StringLength(100, ErrorMessage = "Must be <= 100 characters.")]
public string EmailAddress { get; set; }
// and then in my view...
@Html.EditorFor(x => x.EmailAddress)
これはしません:
[DisplayName("EmailAddress")]
[Required(ErrorMessage = "Required")]
[StringLength(100, ErrorMessage = "Must be <= 100 characters.")]
[EmailAddress(ErrorMessage="Invalid email address.")]
public string EmailAddress { get; set; }
// and then in my view...
@Html.EditorFor(x => x.EmailAddress)
2番目の例では、自分のテンプレートの代わりにデフォルトの文字列エディターテンプレートが使用されています。同じモデルの他のプロパティは、正しいエディターテンプレートを使用してレンダリングされます。
私は明らかな何かを見逃していますか、それともこれはバグのように見えますか?