Tôi có một số vấn đề với Html.ValidationSummary. Tôi không muốn hiển thị lỗi thuộc tính trong ValidationSummary. Và khi tôi đặt Html.ValidationSummary (true), nó không hiển thị các thông báo lỗi từ ModelState. Khi có một số Ngoại lệ trong hành động của bộ điều khiển trên chuỗi
MembersManager.RegisterMember(member);
phần bắt thêm một lỗi cho ModelState:
ModelState.AddModelError("error", ex.Message);
Nhưng ValidationSummary không hiển thị thông báo lỗi này. Khi tôi đặt Html.ValidationSummary (false), tất cả các thông báo đều hiển thị, nhưng tôi không muốn hiển thị lỗi thuộc tính. Làm thế nào tôi có thể khắc phục vấn đề này?
Đây là mã tôi đang sử dụng:
Mô hình:
public class Member
{
[Required(ErrorMessage = "*")]
[DisplayName("Login:")]
public string Login { get; set; }
[Required(ErrorMessage = "*")]
[DataType(DataType.Password)]
[DisplayName("Password:")]
public string Password { get; set; }
[Required(ErrorMessage = "*")]
[DataType(DataType.Password)]
[DisplayName("Confirm Password:")]
public string ConfirmPassword { get; set; }
}
Điều khiển:
[HttpPost]
public ActionResult Register(Member member)
{
try
{
if (!ModelState.IsValid)
return View();
MembersManager.RegisterMember(member);
}
catch (Exception ex)
{
ModelState.AddModelError("error", ex.Message);
return View(member);
}
}
Lượt xem:
<% using (Html.BeginForm("Register", "Members", FormMethod.Post,
new { enctype = "multipart/form-data" })) {%>
<p>
<%= Html.LabelFor(model => model.Login)%>
<%= Html.TextBoxFor(model => model.Login)%>
<%= Html.ValidationMessageFor(model => model.Login)%>
</p>
<p>
<%= Html.LabelFor(model => model.Password)%>
<%= Html.PasswordFor(model => model.Password)%>
<%= Html.ValidationMessageFor(model => model.Password)%>
</p>
<p>
<%= Html.LabelFor(model => model.ConfirmPassword)%>
<%= Html.PasswordFor(model => model.ConfirmPassword)%>
<%= Html.ValidationMessageFor(model => model.ConfirmPassword)%>
</p>
<div>
<input type="submit" value="Create" />
</div>
<%= Html.ValidationSummary(true)%>
<% } %>