ASP MVC 中的必需字段验证使用 Kendo UI

Required Field Validation in ASP MVC using Kendo UI

我有一个文本框,希望在提交表单时显示必填字段。如果我单击文本框和选项卡转到下一个文本框,则会出现错误消息。我的模型上有 'Required' 数据注释,如下所示:

[DisplayName("Shipment Number")]
[Required]
public string ShipmentNumber          { get; set; }

我的视图如下所示:

<div class="col-sm-8">
    @Html.TextBoxFor(model => model.ShipmentNumber, new {@class = "form-control", @maxlength = "8", @title = "Maximum length is 8"})
    @Html.ValidationMessageFor(model => model.ShipmentNumber)
</div>

哦,我也在 $function 中添加了这些:

$("form").kendoValidator();

$.validator.setDefaults({
       ignore: ""
 });

当我将文本框留空并提交表单时,提交表单时没有显示错误消息,即 'The Shipment Number is required!'。 P.S:我也试过 DataAnnotation:

[Required(ErrorMessage = "ShipmentNumber Is Required")]

有谁知道我怎样才能做到这一点?

更新: 这修复了它: 更改 Razor 代码以使文本框成为必需的,并添加了必需的错误消息。

@Html.TextBoxFor(model => model.ShipmentNumber, new {@class = "form-control", @maxlength = "8", @title = "Maximum length is 8", data_required_msg = "Shipment Number is required!", required = "required" })

在 javascript 中的按钮提交代码中,这样做了:

var validator = $(".form-horizontal").kendoValidator().data("kendoValidator");
if (validator.validate()) {
  //code that needs to be executed if it is valid
}

注意:我还去掉了模态 class、@Html.ValidationMessageFor 和 $("form").kendoValidator 代码中的数据注释。

点击按钮时尝试强制验证:

// Validate the input when the Save button is clicked
$("#save").on("click", function() {
    if (validator.validate()) {
        // If the form is valid, the Validator will return true
        save();
    }
});

$("form").submit(function(event) {
    event.preventDefault();
    if (validator.validate()) {
        status.text("Hooray! Your tickets has been booked!")
              .removeClass("invalid")
              .addClass("valid");
    } else {
        status.text("Oops! There is invalid data in the form.")
              .removeClass("valid")
              .addClass("invalid");
    }
});

http://docs.telerik.com/kendo-ui/framework/validator/overview