MVC 5 如何验证可空整数

问题描述

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

型号:

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

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

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

更新 - 澄清:

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

解决方法

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

HTML5 Required Attribute