ASP MVC 4客户端字符最大验证未显示消息

时间:2014-11-15 01:22:05

标签: jquery asp.net-mvc asp.net-mvc-4 validation

我有一个字符限制我试图使用ASP MVC 4客户端验证放置在特定字段上。不幸的是,这个字段可以通过下拉列表自动填充,并且由于值由我们的工作人员维护,因此有时输入的值大于12个字符或者具有太多的空格。

客户端验证似乎很好地捕获了该字段(用红色突出显示它并且不允许表单发布),但我不会显示该消息。我们有相同形式的其他字段,所以我不确定发生了什么。显然我们的jQuery脚本和@Html.ValidationSummary(true)命令设置正确

模型

    [MaxLength(12, ErrorMessage = "Maximum 12 characters")]
    public string DRMCompanyId { get; set; }

查看

<div class="M-editor-label">
    @Html.LabelFor(model => model.DRMCompanyId, new {@class="required"})
</div>
<div class="M-editor-field">
    @Html.TextBoxFor(model => model.DRMCompanyId, new { maxLength = 10 })
    @Html.ValidationMessageFor(model => model.DRMCompanyId)
</div>

供参考,以下验证有效。该字段的格式相同:

模型

    [DisplayName("Effective Date")]
    [Column(TypeName = "DateTime")]
    [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
    public DateTime? EffectiveDate { get; set; }

查看

<div class="M-editor-field">          
    @Html.TextBoxFor(model => model.EffectiveDate, new { maxlength = 10 })
    @Html.ValidationMessageFor(model => model.EffectiveDate)
</div>

2 个答案:

答案 0 :(得分:1)

请使用以下属性而不是您的:

[StringLength(12, ErrorMessage = "Maximum 12 characters")]

这是您正确的DataAnnotation。

More info about this attribute

答案 1 :(得分:0)

使用 [StringLength(12, ErrorMessage = "Maximum 12 characters")]

fiddle