2017-08-24 4 views
0

auf Seite Last zeigt habe ich ein Stück Code Razor wie so:Validation wird

<div class="form-group"> 
    @Html.Label("State", new { @class = "control-label col-md-4" }) 
    <div class="col-md-8"> 
     <div class="tt-container"> 
      @Html.Editor("StateName", new { htmlAttributes = new { @id = "StateName", @class = "form-control", @required="required" } }) 
     </div> 
     @Html.ValidationMessage("StateName", "The State field is required", new { @class = "text-danger" }) 
    </div> 
</div> 

Die Meldung Validierung The State field is required beim Laden der Seite angezeigt wird. Ich möchte nur, dass diese Nachricht angezeigt wird, wenn dieses Textfeld leer ist, wenn ein Benutzer versucht, das Formular zu senden.

Wenn ich dies tun:

@Html.ValidationMessage("StateName", "", new { @class = "text-danger" }) 

Dann natürlich sehe ich keine Bestätigungsnachricht, weil es leer ist, aber wenn ich einreichen klicken und das Textfeld ist leer ich eine Validierung Meldung erhalten, This field is required.

Ich suche 1 von 2 Möglichkeiten.

Mit dem ersten Problem, kann ich zeigen, dass die Bestätigungsmeldung nach dem Absenden der Schaltfläche angeklickt wird, wenn das entsprechende Textfeld leer ist?

Mit dem zweiten Problem, kann ich diese Fehlermeldung zu beschreibenden wie The State field is required bekommen?

Jede Hilfe wird geschätzt.

Antwort

1

können Sie verwenden diese ValidationMessage Helfer -Methodenüberladung

@Html.ValidationMessage("StateName") 

Die Validierungsnachricht eine Nachricht von der Modellvalidierung Rahmen in der Form erzeugt wird „The {Eigenschaftsname} ist erforderlich“

+0

Ich weiß, dass diese funktioniert, aber es erfordert stark typisierte Eigenschaften mit dem Modell. Was ich habe, ist nur ein einfaches Textfeld, dass, wenn etwas in es eingegeben wird .. dieser Wert ist gebunden an ein hiddenfor Element –

+0

'StateName' ist keine stark typisierte Eigenschaft. Nur ein Textfeld für den Benutzer zu sehen, aber der Wert ist gebunden an eine stark typisierte hiddenfor Element –

+0

Sie können das gleiche mit 'ValidationMessage' Helfer-Methode ebenso. Verwenden Sie die Überladung, die den Namen des Objekts annimmt. Siehe die aktualisierte Antwort. – Shyju