0

如果我将 a 添加MaxLengthAttribute到这样的属性中:

[MaxLength]
[DataType(DataType.MultilineText)]
public string Notes { get; set; }

标记呈现如下:

<textarea class="form-control" data-bind="value: Notes" data-val="true" data-val-maxlength="The field Notes must be a string or array type with a maximum length of '-1'." data-val-maxlength-max="-1" id="Notes" name="Notes"></textarea>

验证结果如下所示:

在此处输入图像描述

这显然不是预期的结果。文本区域应该允许比“-1”更多的字符。

我可以想出多种方法来解决这个问题(例如,通过 jQuery 删除属性,使用 javascript 手动更新规则等)。

解决这个问题的最优雅的方法是什么?这是 MVC/Validator 的错误吗

4

1 回答 1

0

您没有指定所需的最大字符串长度,您期望什么?这种属性重载MaxLength整数作为参数,指定字符串的实际最大允许长度。当您使用无参数构造函数时,它将使用数据库允许的最大长度,但不确定为什么 jQuery Validation 选择将其实现为 -1。

于 2014-03-03T14:48:39.530 回答