【问题标题】:mvc3 maxLength inputmvc3 最大长度输入
【发布时间】:2012-06-02 19:32:32
【问题描述】:

这可能有点笼统,但我想限制编辑器字段中的字符数。

@html.EditorFor(m=>m.id,new {@maxlength="10"})

这似乎不起作用。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 editorfor


    【解决方案1】:

    试试改成

    @Html.TextBoxFor(m=> m.id,  new { maxlength="10" });
    

    EditorFor 使用您可以自己覆盖的模板。我认为他们没有像这样考虑您传入的属性。 TextBoxFox 在代码中生成它,应该可以正常工作。

    【讨论】:

    • 如果我们需要合并怎么办。我必须对水印使用编辑器,并且仍然需要最大长度。这是我的编辑器代码@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { placeholder = ViewData.ModelMetadata.Watermark }) 如何从元数据中获取“最大值”?
    • 您必须编写自己的元数据提供程序(可能)和一个在渲染之前添加到 HtmlOptions 的自定义帮助程序(基本上是一个简单的包装器)。
    【解决方案2】:

    我能够使用 EditorFor 并使用多个属性使其在 IE11 中工作。

    @Html.EditorFor(model => model.CourseNumber, new { htmlAttributes = new { @style = "width:100px", @maxlength="10" } })
    

    【讨论】:

    • 支持,因为这对我有用:@Html.EditorFor(model => model.CourseNumber, new { htmlAttributes = new { maxlength=10 } })
    【解决方案3】:

    在 MVC3 中,这样更好:

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

    指定数据字段中允许的最小和最大字符长度。 就像这个https://stackoverflow.com/a/6802739/2127493

    【讨论】:

    • 这对我不起作用,MaxLengthStringLength 都没有添加属性maxlength,而我只得到了data-val-length-maxdata-val-maxlength-max
    • StringLength 和 MaxLength (DataAnnotation) 用于 jquery validate 并需要 javascript。
    猜你喜欢
    • 2015-12-28
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2018-03-31
    • 2020-01-05
    相关资源
    最近更新 更多