J'ai un problème avec le Html.ValidationSummary. Je ne veux pas afficher les erreurs de propriété dans ValidationSummary. Et quand je Html.ValidationSummary(vrai) il n'affiche pas les messages d'erreur de ModelState. Lorsqu'il y a une Exception dans l'action du contrôleur sur chaîne
MembersManager.RegisterMember(member);
section catch ajoute une erreur dans la ModelState:
ModelState.AddModelError("error", ex.Message);
Mais ValidationSummary ne pas afficher ce message d'erreur. Lorsque j'ai mis le code Html.ValidationSummary(faux) tous les messages sont affichés, mais je ne veux pas afficher les erreurs de propriété. Comment puis-je résoudre ce problème?
Voici le code que j'utilise:
Modèle:
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; }
}
Contrôleur:
[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);
}
}
Vue:
<% 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)%>
<% } %>