通过验证属性

时间:2016-04-30 20:28:35

标签: c# asp.net-mvc-5 validationattribute

在mvc5中,只要您使用[MaxLength(10)]属性,它就会生成以下html属性:

`data-val-maxlength="The field Email must be a string or array type with a maximum length of '10'."

这很好用,除了我想做的是防止用户在达到最大长度后能够输入。要做到这一点,我可以使用html属性maxlength现在,我想弄清楚的是如何将自定义属性注入html字段而不使用前缀data-val-

我尝试通过IClientValidatable执行此操作,但会生成data-val-前缀。这可能吗?

1 个答案:

答案 0 :(得分:1)

1。 MVC5 Razor

使用MVC 5 Razor HTML帮助程序设置属性。

@Html.TextBoxFor(m => m.Name, new {maxlength = "10"})

2。客户端脚本

您可以使用一些Javascript代码将生成的属性中的值移动到html属性(此示例使用jQuery)。

$("input[data-val-maxlength]").each(function (index, element) {
   var length = parseInt($(this).data("val-maxlength"));
   $(this).prop("maxlength", length);
});
相关问题