.input-Validierung-Fehlerklasse nicht zur Eingabe in Sicht hinzugefügt
-
07-07-2019 - |
Frage
Ich versuche, einige einfache Validierung meiner asp.net Mvc Form hinzufügen und habe Schwierigkeiten mit der .input-Validierung-Fehlerklasse immer auf meine Eingaben hinzugefügt werden. Die Validierung-Zusammenfassung-Fehler und .field-validation-Fehler funktionieren. Vielen Dank im Voraus für Ihre Hilfe!
Edit: Vielen Dank für die Hilfe aller !!! Ich hatte diese Linie an den Controller hinzuzufügen, um den Fehler zu vermeiden:
ModelState.SetModelValue("txtEmailOrDealerID", collection.ToValueProvider()["txtEmailOrDealerID"]);
Die Aussicht:
<%using (Html.BeginForm("DealerLogin", "Home", FormMethod.Post))
{ %>
<fieldset>
<legend>Dealer Login</legend>
<div class="row">
<%=Html.Label("txtEmailOrDealerID", "E-Mail Or Dealer ID:")%>
<%=Html.TextBox("txtEmailOrDealerID")%>
<%=Html.ValidationMessage("txtEmailOrDealerID", "*")%>
</div>
<div class="row">
<%=Html.Label("txtPassword", "Password:")%>
<%=Html.Password("txtPassword")%>
<%=Html.ValidationMessage("txtPassword", "*")%>
</div>
<div class="centerbutton">
<input type="submit" id="btnSubmitDealer" value="Login"/>
</div>
</fieldset>
<%} %>
Der Controller:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult DealerLogin(FormCollection collection)
{
if (string.IsNullOrEmpty(collection["txtEmailOrDealerID"].Trim()))
ModelState.AddModelError("txtEmailOrDealerID", "E-Mail Address or Dealer ID is required.");
if (string.IsNullOrEmpty(collection["txtPassword"].Trim()))
ModelState.AddModelError("txtPassword", "Password is required.");
if (ModelState.IsValid)
return Redirect("~/MyUploads");
else
return View("Index");
}
Die CSS:
/*Validation*/
.field-validation-error{color: #ff0000;}
.input-validation-error{border: 1px solid #ff0000; background-color: #ffeeee;}
.validation-summary-errors{color: #ff0000;}
Die HTML.Label Erweiterungsmethode:
public static string Label(this HtmlHelper helper, string forControl, string text)
{
return String.Format("<label for='{0}'>{1}</label>", forControl, text);
}
Lösung
Von der Spitze von meinem Kopf, sollten die AddModelError id-Parameter die ID des Eingangs entsprechen. Also in Ihrem Fall soll geändert werden:
ModelState.AddModelError("txtEmailOrDealerID", "E-Mail Address or Dealer ID is required.");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow