mvc4验证号抛出异常

时间:2013-11-08 10:22:40

标签: asp.net-mvc validation asp.net-mvc-4 html-helper

我的模型中有一个字段,我希望它只是数字

[Required(ErrorMessage = "Cheque ID is required")]
        [RegularExpression("([1-9][0-9])*", ErrorMessage = "Cheque ID must be numbers only.")]
        [Range(typeof(Decimal), "1", "9999", ErrorMessage = "Cheque ID must be a number between {1} and {999}.")]

我试过这个:

在我看来我使用了这个

<div class="editor-field">
            @Html.TextBoxFor(x => x.chequeID, new {placeholder = "Enter The Location", @Value = "" })
            @Html.ValidationMessageFor(model => model.chequeID)
    </div>

但我去了这个例外

  

索引(从零开始)必须大于或等于零且小于参数列表的大小。

我做错了什么

1 个答案:

答案 0 :(得分:1)

你的问题在这里:

[Range(typeof(Decimal), "1", "9999", ErrorMessage = "Cheque ID must be a number between {1} and {999}.")]

此索引{999}超出范围。与string.Format类似,例如,如果您有3个参数,则您的字符串应按照指定顺序将其包含为{0}{1}{2}

在您的情况下,将{999}替换为{2}将显示“9999”作为最大值({0}是属性名称,这就是最小值为{1}的原因)。