我的模型中有一个字段,我希望它只是数字
[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>
但我去了这个例外
索引(从零开始)必须大于或等于零且小于参数列表的大小。
我做错了什么
答案 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}
的原因)。