试图限制ASP.NET MVC中int数据类型的大小限制

时间:2019-04-29 04:59:21

标签: javascript c# jquery html asp.net-mvc

我正在尝试将int数据类型文本框的大小范围固定为两位数。 但是我不能。任何想法将不胜感激。

CoilEntry.cs是模型类,其中OUT_P_NOint属性,我想将其限制为最多两位数。

CoilEntry.cshtml显示其html部分。

Coilentry.cs (模型类)

public class CoilEntry
{
    [Range(0,99, ErrorMessage="Please use values between 0 to 30")]
    public int OUT_P_NO { get; set; }
}

CoilEntry.cshtml

@using (Html.BeginForm("CoilEntry", "Home", FormMethod.Post))
{
        <table border="0" cellpadding="0" cellspacing="0">
            <tr>
                <th colspan="3">
                    Coil Entry Detail
                </th>
            </tr>
            <tr>
                <td>
                    OUT PART NO
                </td>
                <td>
                   @Html.TextBoxFor(m=>m.OUT_P_NO,new {@type="number",@maxlength=2,@size=2})
                  </td>
</table>
} 

预期结果是该文本框仅允许使用0到99之间的值。

当前,文本框仅允许使用数字值,但可以输入两位数以外的值。

1 个答案:

答案 0 :(得分:1)

您需要更改为@type =“ text”并为keypress添加事件

将此添加到cshtml文件中页面的脚本部分。 #OUT_P_NO是使用@Html.TextBoxFor(m => m.OUT_P_NO

时生成的ID
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
    $('#OUT_P_NO').keypress(function(evt) {
            var charCode = (evt.which) ? evt.which : event.keyCode;
            if (charCode > 31 && (charCode < 48 || charCode > 57))
                return false;
            return true;
    });
</script>

将type =“ number”更改为“ text”

@Html.TextBoxFor(m => m.OUT_P_NO, new { @type = "text", @maxlength = 2, @size = 2 })