1

В моей модели в моем приложении asp.net mvc я использовал атрибуты RequiredIf.требуется, если не работает с проверкой на стороне клиента

Модель

[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; } 

Посмотреть

@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> 

Я посылаю форму на сервер через Ajax пост, а вот моя функция;

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) { 
     } 
    }); 
} 
} 

Ну с этой структурой, я обрабатывать проверки на стороне сервера совершенен, однако на стороне клиента - validator.validate() раздел, это только подтвердить ввод с необходимыми атрибутами.

Должен ли я писать дополнительный код для проверки на стороне клиента этих необходимых входов или есть ли какие-либо другие способы обработки этого со стороны бритвы или стороны js?

ответ

-1

Я думаю, что нет никакого способа справиться с этим, оставив это кендо-и. Потому что, kendo производит html для Тип клиента вход;

<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"> 

и Имя клиента

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

data-val-required не производится для requiredIf приписываемой члена по кендо.

Итак, я проверяю эти поля только на стороне сервера.