视图模型int溢出的自定义错误(无效值)

时间:2016-01-20 01:03:12

标签: asp.net asp.net-mvc asp.net-mvc-5

在我的模型中,我有一个可以为空的int。

在视图中,我输入了'数字'。

问题是用户可能输入的数字大于最大可能的整数值,这会导致以下错误:

值[value]对[field]

无效

我想更改此消息,并且对属性进行[Range(...)]验证没有帮助,因为我的验证没有被调用,因为框架无法将值解析为int。 / p>

---------编辑---------

我的验证在正常输入时正常执行,如下所示:

enter image description here

我对未被调用的验证的意思是我已经读过如果框架无法将值解析为int(因为该值超过整数的最大值),它会忽略任何进一步的"不必要"验证

因此我的范围验证被忽略,如下所示:

enter image description here

我已尝试创建自定义ValidationAttribute,但它具有相同的行为(在正常整数输入时正确调用,但在溢出整数输入时被忽略)

--------- / EDIT ---------

我见过的所有解决方案都建议绑定一个自定义资源文件,我可以在其中覆盖无效值的默认消息。

但我希望能够在无效值的情况下为每个属性指定自定义消息。

我考虑过使用字符串而不是整数,并创建一个自定义ValidationAttribute,尝试将其解析为int。

还有其他选择吗?

//编辑:我可以通过客户端验证来避免这个问题(在某种程度上) - 但我想知道是否有可能从服务器端,如果有人编辑html并强制更高值

1 个答案:

答案 0 :(得分:0)

您可以通过多种方式验证用户输入:

以下是自定义验证属性的示例:

'foRtinet'