Gib*_*boK 29 asp.net-mvc data-annotations asp.net-mvc-3
我在电子邮件字段中使用此代码:
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email address")]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)
[DataType(DataType.EmailAddress)]
不起作用(不在客户端的服务器上进行验证).
我不确定是否应该自己实现自定义属性,或者我可以使用MVC 3中包含的属性.
如果需要,请您建议我创建自定义属性的解决方案.
我还阅读了一些额外的扩展,例如 http://nuget.org/packages/DataAnnotationsExtensions.MVC3
你能告诉我吗?
Sar*_*ahK 45
您只需使用[EmailAddress]即可使用常用的DataAnnotations库
using System.ComponentModel.DataAnnotations;
[Required]
[EmailAddress]
public String Email { get; set; }
Run Code Online (Sandbox Code Playgroud)
也仅供参考,这是此验证的正则表达式版本:
[RegularExpression(@"^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-??]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$", ErrorMessage = "Email is not valid")]
public String Email {get; set;}
Run Code Online (Sandbox Code Playgroud)
祝你好运!
Gib*_*boK 11
目前我已经使用http://dataannotationsextensions.org解决了我的问题
它只是工作,你用NuGet添加他们的库
using DataAnnotationsExtensions;
[Required]
[DataType(DataType.EmailAddress)]
[Email]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)
看起来所有答案都集中在数据模型上,而此问题可能会受到View本身的影响.
MVC .NET 4.5上的以下工作正常:
数据模型:
[Required]
[DataType(DataType.EmailAddress)]
[DisplayName("Email")]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)
剃刀查看:
@Html.LabelFor(model => model.Email)
@Html.EditorFor(model => model.Email)
Run Code Online (Sandbox Code Playgroud)
注意:不需要添加[EmailAddress]属性.如果在视图中使用[DataType(DataType.EmailAddress)]和@ Html.EditorFor(),那么你应该没问题.
正如rich.okelly所强调的那样,最后你希望你的输入呈现为<input type="email" />
.
小智 5
也许这会对某人有帮助。以下对我有用
[Required(ErrorMessage = "*")]
[DataType(DataType.EmailAddress)]
[EmailAddress]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)
但以下不起作用
[Required(ErrorMessage = "*")]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)
我在用MVC 5
&.NET 4.5
归档时间: |
|
查看次数: |
45282 次 |
最近记录: |