Ich bin naiv zu Asp.Net MVC.So fügen Sie benutzerdefinierte Fehlermeldung mit "erforderlich" htmlattribute zu mvc 5 Rasierer Ansicht Texteingabe-Editor
Ich habe eine Teilansicht (ASP.Net MVC), in der ich einige erforderliche Felder habe Ich möchte benutzerdefinierte Fehlermeldung zeigen, wenn eines der erforderlichen Feld nicht zur Verfügung gestellt wird. Unten ist der komplette cshtml Code für meine Teilansicht.
@model CMSAdminPanel.ViewModel.ProductView
<h4>Material And Labour Cost For Each Size</h4>
<hr />
@Html.ValidationSummary(false, "", new { @class = "text-danger" })
@for (int i = 0; i < Model.ServiceView.ListPriceView.Count; i++)
{
@Html.HiddenFor(x => x.ServiceView.ListPriceView[i].ProductSizeType)
<div class="form-group">
@Html.LabelFor(x => x.ServiceView.ListPriceView[i].ProductSizeTypeName, "Size - " + Model.ServiceView.ListPriceView[i].ProductSizeTypeName, htmlAttributes: new { @class = "control-label col-md-4" })
</div>
<div class="form-group">
@Html.LabelFor(x => x.ServiceView.ListPriceView[i].LabourCost, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(x => x.ServiceView.ListPriceView[i].LabourCost, new { htmlAttributes = new { @class = "form-control", required = "required"} })
@Html.ValidationMessageFor(x => x.ServiceView.ListPriceView[i].LabourCost,"", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(x => x.ServiceView.ListPriceView[i].MaterialCost, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(x => x.ServiceView.ListPriceView[i].MaterialCost, new { htmlAttributes = new { @class = "form-control", required = "required" } })
@Html.ValidationMessageFor(x => x.ServiceView.ListPriceView[i].MaterialCost, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(x => x.ServiceView.ListPriceView[i].Profit, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(x => x.ServiceView.ListPriceView[i].Profit, new { htmlAttributes = new { @class = "form-control", required = "required" } })
@Html.ValidationMessageFor(x => x.ServiceView.ListPriceView[i].Profit, "", new { @class = "text-danger"})
</div>
</div>
}
Ich möchte benutzerdefinierte Nachricht "Materialkosten erforderlich" angezeigt werden, während ich bekomme "Dieses Feld ist erforderlich". Also möchte ich diese Difault-Fehlermeldung auf der Client-Seite überschreiben.
möchte ich so etwas wie dies zu erreichen:
<div class="form-group">
@Html.LabelFor(x => x.ServiceView.ListPriceView[i].LabourCost, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(x => x.ServiceView.ListPriceView[i].LabourCost, new { htmlAttributes = new { @class = "form-control", required = "required", **data_val_required = "LabourCost is requried"**} })
@Html.ValidationMessageFor(x => x.ServiceView.ListPriceView[i].LabourCost,"", new { @class = "text-danger" })
</div>
</div>
Jede Anregung/Lösung wäre eine große Hilfe
haben Sie versucht, die Datenanmerkung auf dem MaterialCost in Ihrem Modell zu verwenden? Fügen Sie das Required-Attribut aus Datenanmerkungen hinzu und übergeben Sie die Nachricht im Parameter der Fehlermeldung –
@NoorSamara Ja, zuerst versuchte ich Daten Annotation auf meinem Modell für erforderliche Attribut und auch für Nachricht, aber für Teilansicht Modell Annotation funktioniert nicht. Also versuche ich htmAttribute "required" und es funktioniert gut, aber es zeigt die Fehlermeldung "Dieses Feld ist erforderlich". –
Ich habe selbst einen Test gemacht, und die benutzerdefinierte Nachricht Required funktioniert einwandfrei mit dieser Eigenschaft: 'public decimal MaterialCost {..} {..}', sowohl wenn sie aus einer View * und * aus einer Teilansicht ausgelöst wird. Dies war mit MVC v5.2.3. Benutzt du das auch, oder vielleicht eine ältere Version? –