- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
默认的 ASP.net MVC 3 Internet 应用程序模板包括以下模型:
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email address")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
在帐户/注册操作中,它要求输入电子邮件地址,但似乎您可以在此字段中输入任何内容,它会接受。
DataType(DataType.EmailAddress) 是否真的会触发验证?好像没有。如果它不验证类型,那么它的目的是什么?
最佳答案
据我所知,DataType 属性用于格式化,但仅当您使用 @Html.EditorFor(model => model.Field)
时才使用。
来自模型字段、cshtml 和生成的 HTML 的示例:
模型字段:
[Required]
[DataType(DataType.Text)]
[Display(Name = "Name")]
public string Name { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Required]
[DataType(DataType.MultilineText)]
[Display(Name = "Description")]
public string Desc { get; set; }
Cshtml:
<div class="form-section">
@Html.LabelFor(x => x.Name)
@Html.EditorFor(x => x.Name)
</div>
<div class="form-section">
@Html.LabelFor(x => x.Password)
@Html.EditorFor(x => x.Password)
</div>
<div class="form-section">
@Html.LabelFor(x => x.Desc)
@Html.EditorFor(x => x.Desc)
</div>
生成的 HTML:
<div class="form-section">
<label for="Name">Name</label>
<input class="text-box single-line" id="Name" name="Name" type="text" value="">
</div>
<div class="form-section">
<label for="Password">Password</label>
<input class="text-box single-line password" id="Password" name="Password" type="password" value="">
</div>
<div class="form-section">
<label for="Desc">Description</label>
<textarea class="text-box multi-line" id="Desc" name="Desc"></textarea>
</div>
我知道这是一篇旧帖子,但也许我可以为来这里的其他人阐明情况
编辑:
可能有一些验证附加到这些但只是客户端。不要依赖这些属性进行实际验证,这应该始终在服务器端完成(客户端仅用于用户体验)
关于c# - 模型上的 DataTypeAttribute 是否在 MVC 3 中进行验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6550487/
与此相关question 我已经创建了自己的 DateValidationAttibute 以确保字符串采用有效的日期格式(例如,MM/DD/YYYY) [AttributeUsage(Attribu
据我所知,System.ComponentModel.DataAnnotations.DataTypeAttribute 在 MVC v1 的模型验证中不起作用。例如, public class Mo
默认的 ASP.net MVC 3 Internet 应用程序模板包括以下模型: public class RegisterModel { [Required] [Display(Na
我是一名优秀的程序员,十分优秀!