c# - MaxLength 属性不生成客户端验证属性

标签 c# asp.net-mvc validation asp.net-mvc-3 model-validation

我对 ASP.NET MVC3 客户端验证有一个奇怪的问题。我有以下类(class):

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 的迹象,但其他一切似乎都正常。

知道出了什么问题吗?

最佳答案

尝试使用 [StringLength] 属性:

[Required(ErrorMessage = "Name is required.")]
[StringLength(40, ErrorMessage = "Name cannot be longer than 40 characters.")]
public string Name { get; set; }

这是为了验证目的。例如,如果您想在输入上设置 maxlength 属性,您可以将自定义数据注释元数据提供程序编写为 shown in this post并自定义 default templates .

关于c# - MaxLength 属性不生成客户端验证属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6801656/

相关文章:

javascript - 尝试阻止按钮单击时的模式关闭 - javascript

asp.net-mvc - 未在浏览器中创建响应 header 中的 Set-Cookie - 使用 http POST

validation - 交叉验证是如何实现的?

c# - WCF web 服务运行在两台服务器集群上,带有负载均衡器,解析 web 服务地址

c# - 加载一对多模型

asp.net-mvc - 使用 ASP.NET、NHibernate/Fluent NHibernate 实现最轻松的 Multi-Tenancy

javascript input.focus() 在 firefox 23 中不起作用

html - 为什么这个 html 在 css 中被检查为有效?

C# 列出 amazon S3 文件夹下所有具有文件名的文件

c# - ASP.NET 身份验证 cookie