我对ASP.NET MVC3客户端验证有一个奇怪的问题。我有以下类:
public class Instrument : BaseObject
{
public int Id { get; set; }
[Required(ErrorMessage = "Name is required.")]
[MaxLength(40, ErrorMessage = "Name cannot be longer than 40 characters.")]
public string Name { get; set; }
}
在我看来:
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
下面是我为该字段的文本框生成的HTML:
<input class="text-box single-line" data-val="true" data-val-required="Name is required." id="Name" name="Name" type="text" value="">
没有MaxLengthAttribute
的迹象,但其他一切似乎都正常。
你知道哪里出问题了吗?
发布于 2011-07-24 03:23:02
尝试使用[StringLength]
属性:
[Required(ErrorMessage = "Name is required.")]
[StringLength(40, ErrorMessage = "Name cannot be longer than 40 characters.")]
public string Name { get; set; }
这是为了验证目的。例如,如果您想在输入上设置最大长度属性,您可以编写一个定制的数据注释元数据提供者作为shown in this post,并定制default templates。
发布于 2013-01-05 06:34:32
我刚刚使用了一段jquery来解决这个问题。
$("input[data-val-length-max]").each(function (index, element) {
var length = parseInt($(this).attr("data-val-length-max"));
$(this).prop("maxlength", length);
});
选择器查找设置了data-val-length-max属性的所有元素。这是StringLength验证属性将设置的属性。
each循环遍历这些匹配项,并将解析出该属性的值,并将其分配给本应设置的mxlength属性。
只需将其添加到您的文档就绪功能,您就可以开始工作了。
发布于 2014-02-11 16:24:01
自MVC5.1更新以来,MaxLengthAttribute
一直在运行:change notes
https://stackoverflow.com/questions/6801656
复制相似问题