StringLength在MVC4.0中没有按预期工作

时间:2013-04-23 14:09:21

标签: model-view-controller data-annotations

我在MVC 4中有一个@Html.EditorFor控件,对于字符串长度验证,我在模型属性初始化的顶部使用了[StringLength(10)]属性,上面的控件。它的作用是每当用户输入10个以上的字符时,它会给出一条消息,提到它不能超过定义的限制。

但是,它并不禁止用户输入超过定义的限制。可以在MVC中使用DataAnnotations吗?

注意:我不想在这里使用任何onKeypress事件。

3 个答案:

答案 0 :(得分:1)

似乎是使用TextBox来代替是最简单的方法:

@Html.TextBoxFor(model => model.MyField, new {maxlength = 10})

根据this question

答案 1 :(得分:1)

你可以给你编辑@ maxlength = 10 e.g。

    @Html.EditorFor(model => model.str, new {  @maxlength=10 })

通过这种方式,您可以限制用户表单插入超过10个字符。

我希望这会对你有所帮助。

答案 2 :(得分:0)

您需要在相关的View中编写验证码@ Html.ValidationMessageFor(如edit.cshtml):

        <div class="editor-field">
          @Html.EditorFor(model => model.str)
          @Html.ValidationMessageFor(model => model.str)
        </div>

因此,它会自动查找验证属性并在您的视图页面中显示一些错误消息。 您可以查看此帖子:Adding validation to the model