ASP.NET MVC Html.ValidationSummary (true) zeigt keine Modellfehler an
Ich habe ein problem mit Html.ValidationSummary. Ich will nicht Anzeige-Eigenschaft Fehler in ValidationSummary. Und wenn ich Html.ValidationSummary(true) es werden keine Fehlermeldungen aus ModelState. Wenn eine Ausnahme in der controller-action auf string
MembersManager.RegisterMember(member);
catch-Abschnitt fügt ein Fehler der ModelState:
ModelState.AddModelError("error", ex.Message);
Aber ValidationSummary wird nicht angezeigt diese Fehlermeldung. Wenn ich Html.ValidationSummary(false) werden alle Nachrichten angezeigt, ich will aber nicht zu Anzeige-Eigenschaft Fehler. Wie kann ich dieses problem beheben?
Hier ist der code, den ich verwende:
Modell:
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; }
}
Controller:
[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);
}
}
Anzeigen:
<% 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)%>
<% } %>
InformationsquelleAutor der Frage msi | 2010-05-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, der Weg, das ValidationSummary-flag funktioniert ist, es wird nur angezeigt, ModelErrors für
string.empty
als Schlüssel. Ansonsten ist es davon ausgegangen, es ist eine Eigenschaft, Fehler. Es gibt keine Validierung, die die Zeichenfolge, die Sie bieten, ist/ist nicht eine Eigenschaft, die auf das Modell.InformationsquelleAutor der Antwort Jab
Funktioniert dies besser, als Sie zeigen können validationMessage für einen angegebenen Schlüssel:
und anzeigen wie diese:
InformationsquelleAutor der Antwort ingvesund
Ich weiß, das ist ziemlich alt, und hat gewesen markiert als Antworten mit 147 bis Stimmen, aber es ist etwas anderes zu betrachten.
Können Sie alle Modell-Fehler, die Eigenschaft mit dem Namen und der Zeichenfolge.Leere Schlüssel gleichermaßen, werden gezeigt im ValidationSummary, wenn Sie benötigen. Es ist eine überlastung im ValidationSummary, die dies tun wird.
InformationsquelleAutor der Antwort Levitikon
Vielleicht so:
Und in der Anzeige hinzufügen:
ODER
InformationsquelleAutor der Antwort Piotr Knut
In meinem Fall war es nicht der Arbeit wegen der Rückkehr.
Anstelle von:
Verwendet habe ich:
Seinem Modell, so ist es obvius, dass
ModelState.AddModelError("keyName","Message");
muss die Arbeit mit einem Modell.Diese Antwort zeigen, warum.
Hinzufügen von Validierung mit den DataAnnotations
InformationsquelleAutor der Antwort Allan Patrick Patzlaff
Wenn fast alles, was richtig scheint, ist eine andere Sache, zu suchen ist, um sicherzustellen, dass die Validierung Zusammenfassung nicht explizit versteckt über einige CSS überschreiben wie diese:
Dies kann auch dazu führen, die
@Html.ValidationSummary
erscheinen versteckte, als die Zusammenfassung wird dynamisch gerendert, wobei dievalidation-summary-valid
Klasse.InformationsquelleAutor der Antwort alex
FÜGEN Sie es in das Unterste Teil og Ihre Ansicht:
InformationsquelleAutor der Antwort ronIT