DataTypeAttribute
クラスがSystem.ComponentModel.DataAnnotations.ValidationAttribute
から継承されていることに気付きました。DataTypeAttributeは検証属性ですDefaultModelBinderクラスの場合
ASP.NET MVC DefaultModelBinder
クラスでは、DataTypeAttribute
は検証属性ですか?普通の英語では、ModelBinderはDataTypeAttribute
に従ってオブジェクトを検証しますか?
たとえば、プロパティをDataType.EmailAddress
に指定すると、電子メールアドレスを検証するか、この属性はオブジェクトのメタデータのみを提供します。
UPDATE私はSOに同様の質問を見つけました:だから
Is the DataTypeAttribute validation working in MVC2?
を、それが検証属性として機能していないことによります。なぜ、それが検証属性として機能していない場合、System.ComponentModel.DataAnnotations.ValidationAttribute
から継承されているのですか?
テンプレートエンジンによって使用されるのは理にかなっています。しかし、私が知る限り、かみそりビューエンジンはデフォルトでHtml5要素を生成していません。彼らはそれをどのように使うのかを掘り下げましたか? – tugberk
いいえ、例えば: 'DataType.EmailAddress'は' 'を生成しません。これは[Html.EditorFor](http://msdn.microsoft.com/ja)にのみ使われます。 -us/library/ee402949.aspx)と[Html.DisplayFor](http://msdn.microsoft.com/en-us/library/ee407390.aspx)メソッドを使用して、既定のテンプレートを取得します。電子メールの場合、表示モードのmailtoリンクと編集モードのテキストボックスがあります。 – nemesv