我在ASP MVC3中工作。我有一个输入客户联系信息的模型。 该信息是必需的。当viewstat无效时,文本框必须有一个红色边框(这可以)没有错误消息。但是当emailinput无效时,错误必须在视图上可见。因此,只有emailannotation的错误消息必须是可见的,而不是必需的注释。我不知道该怎么做。
模型:
[Required]
public string FirstName { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Address { get; set; }
[Required]
public string PostalCode { get; set; }
[Required]
public string City { get; set; }
[Required]
public string Country { get; set; }
[Required]
public string PhoneNumber { get; set; }
public string Fax { get; set; }
[Required]
[Email]
public string Email { get; set; }
视图:
<div class="row-fluid">
<div class="span6">
<div data-role="fieldcontain" class="ui-hide-label">
<label for=@Lingo.language.Obj_Telefoon>@Lingo.language.Obj_Telefoon</label>
<span>@Html.TextBoxFor(m => m.PhoneNumber, new { style = "width:90%!important;", placeholder = @Lingo.language.Obj_Telefoon })</span>
</div>
</div>
<div class="span6">
<div data-role="fieldcontain" class="ui-hide-label">
<label for=@Lingo.language.Obj_Fax>@Lingo.language.Obj_Fax</label>
<span>@Html.TextBoxFor(m => m.Fax, new { placeholder = @Lingo.language.Obj_Fax })</span>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<div data-role="fieldcontain" class="ui-hide-label">
<label for=@Lingo.language.Obj_Email>@Lingo.language.Obj_Email</label>
<span>@Html.TextBoxFor(m => m.Email, new { style = "width:98%!important;", placeholder = @Lingo.language.Obj_Email })</span>
<span>@Html.ValidationMessageFor(m => m.Email)</span>
</div>
</div>
</div>
答案 0 :(得分:1)
使用如下所示的消息进行编写:
[Required( ErrorMessage = "The first name is required" )]
public string FirstName { get; set; }
答案 1 :(得分:0)
如果您希望它是必需的,但不希望显示“required”错误消息,则可以将消息设置为单个空格(以避免运行时错误“ErrorMessageString或ErrorMessageResourceName必须是设置,但不是两者。“)
[Required(ErrorMessage = " ")]
[Email(ErrorMessage = "Must be a valid email address.")]
public string Email { get; set; }
如果您还没有Email
属性,则可以创建一个类文件(例如EmailAttribute.cs),其中包含:
using System.ComponentModel.DataAnnotations;
public class EmailAttribute: RegularExpressionAttribute {
public EmailAttribute()
: base(@"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$") { }
}