Mat*_*ins 77 c# validation asp.net-mvc model-validation asp.net-mvc-3
我对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; }
}
Run Code Online (Sandbox Code Playgroud)
从我的观点来看:
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
Run Code Online (Sandbox Code Playgroud)
这是我为此字段的文本框获取的生成的HTML:
<input class="text-box single-line" data-val="true" data-val-required="Name is required." id="Name" name="Name" type="text" value="">
Run Code Online (Sandbox Code Playgroud)
没有迹象MaxLengthAttribute
,但其他一切似乎都在起作用.
有什么想法会出错吗?
Dar*_*rov 144
尝试使用该[StringLength]
属性:
[Required(ErrorMessage = "Name is required.")]
[StringLength(40, ErrorMessage = "Name cannot be longer than 40 characters.")]
public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)
这是为了验证目的.如果要在输入上设置例如maxlength属性,可以编写自定义数据注释元数据提供程序,如本文所示,并自定义默认模板.
Nic*_*son 36
我只是用了一段jquery来解决这个问题.
$("input[data-val-length-max]").each(function (index, element) {
var length = parseInt($(this).attr("data-val-length-max"));
$(this).prop("maxlength", length);
});
Run Code Online (Sandbox Code Playgroud)
选择器查找具有data-val-length-max属性集的所有元素.这是StringLength验证属性将设置的属性.
每个循环遍历这些匹配,并将解析该属性的值并将其分配给应该已设置的mxlength属性.
只需将此添加到您的文档就绪功能,您就可以了.
在MVC 4中如果你想在输入类型文本中使用maxlenght?您可以 !
@Html.TextBoxFor(model => model.Item3.ADR_ZIP, new { @class = "gui-input ui-oblig", @maxlength = "5" })
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
113917 次 |
最近记录: |