0

我正在构建一个 MVC 应用程序,我目前遇到了一个麻烦的问题。

所以我有这些代码行:

<div class="editor-label">
            @Html.LabelFor(model => model.m_Number, "OBJ Number")
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.m_Number)
            @Html.ValidationMessageFor(model => model.m_Number)
        </div>

当我在这个页面中打开我的 UI 时,该字段变成了一种带有箭头的文本框,我可以向上和向下单击以升级或减少一个 int 值;抱歉描述不佳,但我找不到准确的词来描述它。

主要问题是我可以编辑该字段,而不是输入数字,我可以写:

abl

当我按下回车键时,它会“保存”。真正的保存还没有发生,因为我还没有向数据库发送任何信息,但我希望我的 UI 验证写入该字段的数据类型,我想确保那里只写入整数并且我不知道如何做到这一点。我需要帮助,因为我需要保护这些字段不插入错误的数据。

在我的课堂上,我已经写过这个:

   [Display(Name = "Obj Number")]
        public int m_Number { get; set; }

但这并不能解决任何问题。

任何人都知道我该如何做到这一点?谢谢!

4

1 回答 1

0

您可以使用该pattern属性并将其设置为仅接受数字的正则表达式:

$(function() {
    $('input[type="number"]').attr('pattern', '\\d*');
});

请记住,这仅用于 UI 目的。您应该在服务器上执行必要的验证,因为没有什么可以阻止用户简单地使用 FireBug 并向您的服务器提交他想要的任何值。这根本不应该用于验证目的,而只是为了帮助用户。

于 2013-02-06T16:37:00.867 回答