1

在 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- 前缀。这可能吗?

4

1 回答 1

1

1.MVC5剃须刀

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

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

2.客户端脚本

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

$("input[data-val-maxlength]").each(function (index, element) {
   var length = parseInt($(this).data("val-maxlength"));
   $(this).prop("maxlength", length);
});
于 2016-04-30T21:26:00.747 回答