kol*_*uri 13 validation razor asp.net-mvc-3
我的模型中有以下属性
[Required]
[DataType(DataType.PhoneNumber, ErrorMessage = "Invalid Phone Number")]
public string PhoneNumber
{
get;
set;
}
[Required]
[DataType(DataType.EmailAddress, ErrorMessage = "Invalid Email Address")]
public string EmailAddress
{
get;
set;
}
Run Code Online (Sandbox Code Playgroud)
相应的视图是
<td>
Email
</td>
<td>
@Html.EditorFor(model => model.EmailAddress)
@Html.ValidationMessageFor(model => model.EmailAddress, "*")
</td>
</tr>
<tr>
<td>
Phone #
</td>
<td>
@Html.TextBoxFor(model => model.PhoneNumber)
@Html.ValidationMessageFor(model => model.PhoneNumber, "*")
</td>
Run Code Online (Sandbox Code Playgroud)
当我呈现此页面时,我看到必需属性被触发.但是如果我键入无效数据,则不会触发DataType属性.我看到源html并且没有看到为这些验证发出的任何代码.我也将以下内容作为我观点的一部分
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"/>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"/>
Run Code Online (Sandbox Code Playgroud)
Ale*_*tov 16
您可以考虑使用ASP.NET MVC 3 Futures.这是一篇很好的文章,描述了那里的验证:
public class UserInformation
{
[Required]
public string Name { get; set; }
[Required]
[EmailAddress]
public string Email { get; set; }
[Required]
[Url]
public string Website { get; set; }
[Required]
[CreditCard]
public string CreditCard { get; set; }
[Required]
[FileExtensions(Extensions = "jpg,jpeg")]
public string Image { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
cwh*_*ris 10
看这篇文章:
DataTypeAttribute验证是否在MVC2中有效?
重要的是要注意DataType属性通常用于格式化目的,而不是用于验证.从技术上讲,有各种各样的电子邮件格式和电话号码格式(请参阅此处的电子邮件:http://www.regular-expressions.info/email.html).
此外,可以使自定义转换器将看似非电子邮件的字符串转换为电子邮件(我在domain dot com = me@domain.com),因此具有默认验证正则表达式飞出窗口.由开发人员根据其特定目的使用正确的正则表达式,并确保他们只接受他们认为准确的地址.
我自己也有类似的问题.我使用数据类型的电子邮件进行了模型设置,但未将其验证为电子邮件.我在html中注意到,视图生成的电子邮件地址的文本框有一种文本.然后,我改变了我的观点,如下所示,这修复了它:
@Html.TextBoxFor(m => m.Email, new { type = "email" })
Run Code Online (Sandbox Code Playgroud)
正在使用jquery验证javascript库
| 归档时间: |
|
| 查看次数: |
41725 次 |
| 最近记录: |