MVC 5 如何验证可空整数

MVC 5 How to Validate Nullable Integers

这个问题已被多次询问和回答,但我有一个特殊情况,我的模型中有可为 null 的整数。

型号:

[Range(0, int.MaxValue, ErrorMessage = "Please enter valid integer number")]
public int? Jan { get; set; }

在我的编辑表单中,如果输入“x”,则会出现浏览器默认错误弹出窗口“请输入数字”。我自己的客户端验证似乎没有启动。如果我什么都不输入,服务器端就会崩溃,因为我的存储库代码中需要一个参数。

我需要它来验证客户端上的非整数,我还需要它来处理空值,当有人试图提交带有空值的表单时。我不能求助于 Required 数据注释,因为如果我这样做,将不会加载任何数据。这是从遗留代码到 MVC 的转换。

更新 - 澄清:

我正在处理大量可为空的整数。尝试并使它们成为必需的决定是我的 - 我对其他选择持开放态度。我不能改变int?由于各种原因在模型中。因此,我需要针对客户端和服务器上的空值进行验证,以确保输入的是整数。

您可以在客户端使用 HTML5 required 属性来防止输入空值。如果你真的想确保没有空值被发送到服务器,我相信你也需要做一些服务器端验证。

HTML5 Required Attribute