使用DataAnnotations和DataType进行电子邮件模型validation
我有以下型号:
public class FormularModel { [Required] public string Position { get; set; } [Required] [DataType(DataType.EmailAddress)] public string Email { get; set; } [Required] public string Webcode { get; set; } } 所需的validation工作正常。 但是,当我尝试使用数据types,它不反应。
这是我的电子邮件控制的razor代码:
  @Html.TextBoxFor (model => model.Email, new { @style = "width: 175px;", @class = "txtField" } ) * 
那么,有谁知道答案?
TIA
  DataType属性用于格式化目的,而不是用于validation。 
我build议你使用ASP.NET MVC 3 Futures进行电子邮件validation。
示例代码:
 [Required] [DataType(DataType.EmailAddress)] [EmailAddress] public string Email { get; set; } 
 如果您碰巧使用.NET Framework 4.5 ,则现在有一个内置的EmailAddressAttribute ,位于System.ComponentModel.DataAnnotations.EmailAddressAttribute 。 
DataAnnotationsExtensions项目具有您可以使用的电子邮件属性 。
 我已经看过源代码(通过reflection器反向工程), DataType变体实际上甚至没有实现!  (这是DateType.Date ) 
所以它不会工作。
 我会亲自使用RegexValidation的电子邮件。 
 为了清楚起见,下面是类DataTypeAttribute的IsValid的实现: 
 public override bool IsValid(object value) { return true; } 
 我认为你需要在html代码中添加一个组件Html.ValidationMessageFor 。 该组件显示validation。 
代码可能是(使用剃刀):
 @Html.TextBoxFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email) 
尝试一下。