即时通讯使用.net 4.5,MVC 4和IM使用模型粘结剂的形式。我有一个HTML验证摘要,它将把错误显示为一个列表,这很好。MVC模型粘结剂 - 获取个人表格错误
我想要做的是得到如果单个模型属性已经触发了基于ModelState的错误,如果是的话,给它一个“错误”的CSS类,将它变成红色。请看下面。
<div class="controls">
@{
// does this element have an error??
if (Model.LastName == error)
{
@Html.ValidationMessageFor(x => x.LastName)
@Html.TextBoxFor(x => x.LastName, new { type = "text", id = "LastName", name = "LastName", value = Model.LastName, @class = "Error" })
}
else
{
@Html.ValidationMessageFor(x => x.LastName)
@Html.TextBoxFor(x => x.LastName, new { type = "text", id = "LastName", name = "LastName", value = Model.LastName, })
}
}
}
验证摘要
@{
if (ViewBag.Error != null && ViewBag.Error == true)
{
<div class="alert alert-error">
<h3>Error</h3>
<p>@ViewBag.Message</p>
<p>@Html.ValidationSummary(false)</p>
</div>
}
else if (ViewBag.Error != null && ViewBag.Error == false)
{
<div class="alert alert-success">
<h3 style="color:green;">Details Updated Successfully Received</h3>
<p style="color:green;">@ViewBag.Message</p>
</div>
}
}
型号
public class UpdateDetailsModel
{
public VIPSessionObject VIPSessionObject { get; set; }
[Required]
[DataType(DataType.Text, ErrorMessage = "Please Enter your First Name")]
public string FirstName { get; set; }
[Required]
[DataType(DataType.Text, ErrorMessage = "Please Enter your Last Name")]
public string LastName { get; set; }
[Required]
[DataType(DataType.PhoneNumber, ErrorMessage = "Please Enter your Phone Number")]
public string Telephone { get; set; }
[Required]
[DataType(DataType.EmailAddress, ErrorMessage = "Please Enter your Email Address")]
public string Email { get; set; }
[Required]
[DataType(DataType.Password, ErrorMessage = "Please Enter your Motorpoint VIP Password")]
public string Password { get; set; }
[Required]
[DataType(DataType.Password, ErrorMessage = "The Passwords must match")]
[Compare("Password")]
public string PasswordConfirm { get; set; }
[Required]
[DataType(DataType.Date, ErrorMessage = "Please Enter your Date of Birth")]
public DateTime DateOfBirth { get; set; }
[Required]
public int VehiclesInHousehold { get; set; }
[Required(ErrorMessage = "Please select the number of cars in your household")]
public int NoOfVehicles { get; set; }
}
即使它的一个DataType.Date? – JGilmartin 2013-03-11 15:19:31
即使它是使用[必需]属性的日期,也会强制它被要求。如果用户试图将其留空,则会显示错误消息。您可以强制使用模型中的任何字段,只需[必需]属性 – Robert 2013-03-11 15:20:49