Ich kann nicht scheinen, die Validierungsfehlermeldungen unter den Eingabemodellfeldern in der Ansicht anzuzeigen.Validierung wird ausgelöst, zeigt jedoch keine Meldung bei Fehler an. Was vermisse ich? MVC 5 Razor
Der Tag [Erforderlich] oberhalb der Beschreibung-Eingabe macht den ModelState ungültig, stoppt die Übermittlung jedoch nicht. Ich muss es abfangen, indem ich den Modellzustand überprüfe. Fehle ich einige .js-Dateien? Ich habe keine Beispiele, um dies zu überprüfen.
Hier mein Modell ist (man beachte ich habe nur eine [Erforderlich] bis jetzt):
public partial class Requests
{
public int RequestID { get; set; }
public string NickName { get; set; }
public Nullable<double> Lat { get; set; }
public Nullable<double> Lng { get; set; }
public string ZipCode { get; set; }
[Required(ErrorMessage = "Description of what you need is missing.")]
public string Description { get; set; }
public System.DateTime DateCreated { get; set; }
}
Hier ist meine Ansicht ist, wo die Beschreibung Eingang Eingang benötigt.
<div class="form-group">
@Html.LabelFor(model => model.Description, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.TextAreaFor(model => model.Description, new { htmlAttributes = new { @class = "form-control", @rows = "20", @cols = "200" } })
@Html.ValidationMessageFor(model => model.Description, "", new { @class = "text-danger" })
</div>
</div>
Hier mein Controller Action ist (skinnied unten)
if (ModelState.IsValid)
{
//THIS ALL WORKS IF Description HAS INPUT
}
else
{
TempData["Saved"] = "Nothing saved yet. Look for reason.";
return RedirectToAction("StoreRequests", new { lat = requests.Lat, lng = requests.Lng });
}
Auf ModelState
Ausfall der Benutzer auf die richtige Ansicht gerichtet ist und TempData
zeigt, dass nichts gespeichert wurde. Es wird jedoch keine Fehlermeldung in der Ansicht unter der problematischen Eingabe angezeigt, keine ValidationSummary
am oberen Rand der Ansicht, und die Übermittlung wird bei Eingabefehlern nicht gestoppt.
@if(TempData["Saved"] != null)
{
<span style="color: red;">@TempData["Saved"].ToString()</span>
}
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
Vielen Dank Stephen. Ich habe diese 2 hinzugefügt und es hat funktioniert. Wahrscheinlich hatte ein paar mehr in der _Layout.cshtml. Wenn Sie es eine Antwort machen wollen, werde ich es annehmen. – JustJohn
Ich bin mir nicht sicher, warum ich eine Abstimmung bekommen habe. oh well – JustJohn