我有一些Html.ValidationSummary的问题.我不想在ValidationSummary中显示属性错误.当我设置Html.ValidationSummary(true)时,它不会显示来自ModelState的错误消息.在字符串的控制器操作中有一些异常时
MembersManager.RegisterMember(member);
Run Code Online (Sandbox Code Playgroud)
catch部分向ModelState添加错误:
ModelState.AddModelError("error", ex.Message);
Run Code Online (Sandbox Code Playgroud)
但ValidationSummary不显示此错误消息.当我设置Html.ValidationSummary(false)时,所有消息都显示,但我不想显示属性错误.我该如何解决这个问题?
这是我正在使用的代码:
模型:
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; }
}
Run Code Online (Sandbox Code Playgroud)
控制器:
[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);
}
}
Run Code Online (Sandbox Code Playgroud)
视图:
<% using (Html.BeginForm("Register", "Members", FormMethod.Post, …Run Code Online (Sandbox Code Playgroud) 我正在使用标准的MVC3 Razor视图和不显眼的Javascript验证,@Html.ValidationSummary用于在表单的顶部显示它们.如果标准验证(类似的东西[Required])通过,我会运行一些非常自定义的客户端验证,当用户点击提交按钮时会激活该验证.(验证查看了许多表单元素,以确保已经检查了它们的正确集合等,因此它不像仅为单个字段创建新的自定义验证器那么简单).
我希望我在那里构建的可能错误显示在ValidationSummary列表中,但我无法弄清楚如何让错误消息出现在那里.
我的代码包含:
@Html.ValidationSummary(true)
Run Code Online (Sandbox Code Playgroud)
我查看了MSDN网站,仍然无法看到"true"的设置是什么?我注意到,当我有用于字段的验证消息时,它仍然会创建一个空的验证摘要DIV.
有没有办法压制创建摘要DIV,因为它们没有显示任何东西,例如我的字段是重复的.