在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-前缀。这可能吗?
答案 0 :(得分:1)
使用MVC 5 Razor HTML帮助程序设置属性。
@Html.TextBoxFor(m => m.Name, new {maxlength = "10"})
您可以使用一些Javascript代码将生成的属性中的值移动到html属性(此示例使用jQuery)。
$("input[data-val-maxlength]").each(function (index, element) {
var length = parseInt($(this).data("val-maxlength"));
$(this).prop("maxlength", length);
});