1

Bei meinem Modell in meiner asp.net mvc app, ich verwendete RequiredIf Attribute.erforderlich, wenn auf Client-Seite Validierung nicht funktioniert

Modell

[RequiredIf("CustomerType== 'B'", ErrorMessage = "Please enter customer name")] 
[Display(Name = "Customer Name")] 
[DataMember(Name = "CustomerName")] 
public String CustomerName{ get; set; } 

[Required(ErrorMessage = "Please select customer type")] 
[Display(Name = "Customer Type")] 
[DataMember(Name = "CustomerType")] 
public String CustomerType { get; set; } 

Ansicht

@using (Html.BeginForm(null,null,FormMethod.Post,new { @class ="transactionForm" })){ 

<td>@Html.LabelFor(model => model.CustomerName, htmlAttributes: new { @class = "control-label col-md-2" })</td> 
<td>@(Html.Kendo().TextBox() 
     .Name("MusteriAd") 
     .HtmlAttributes(new { style = "width: 250px; height: 32px;" })) 
    @Html.ValidationMessageFor(model => model.CustomerName, "", new { @class = "text-danger" }) 
</td> 

ich das Formular an den Server über Ajax Post schicke, und hier meine Funktion;

function SaveRecord(action, controller, param) { 

$('.error').remove(); 

var form = $(".transactionForm"); 

var validator = form.kendoValidator().data("kendoValidator"); 

if (validator.validate()) { 

    var data = form.serialize(); 

    $.ajax({ 
     url: '/' + controller + '/' + action, 
     dataType: 'json', 
     type: 'POST', 
     data: data, 
     success: function (response) { 
      if (response !== null && !response.success) { 

       DisplayErrors(response.error); 

      } 
      else { 

      } 

     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
     } 
    }); 
} 
} 

gut mit dieser Struktur, Griff i-Server-seitige Validierung perfekt, aber auf Client-Seite - validator.validate() Abschnitt, nur die Eingabe mit erforderlichen Attributen validieren.

Sollte ich zusätzlichen Code für die clientseitige Validierung dieser erforderlichen Eingaben schreiben oder gibt es andere Möglichkeiten, dies auf der Seite des Rasierers oder js Seite zu behandeln?

Antwort

-1

Ich denke, es gibt keine Möglichkeit, damit umzugehen, indem Sie dies zu kendo-ui überlassen. Denn kendo erzeugt den HTML-Code für Kundentyp Eingang;

<input data-val="true" data-val-required="Please enter customer name" id="CustomerType" name="CustomerType" style="width: 250px; display: none;" type="text" data-role="dropdownlist" class="k-valid"> 

und Kundenname

<input class="k-textbox k-valid" id="CustomerName" name="CustomerName" style="width: 250px; height: 32px;"> 

data-val-required nicht erzeugt für requiredIf zugeschrieben Mitglied von Kendo.

Also, ich überprüfe diese Felder nur auf der Serverseite.

Verwandte Themen