我正在尝试在表单验证上显示友好的错误消息。 我在模型类中有一个带注释的属性:
[Required(ErrorMessage="The number attribute is required")]
public int Level { get; set; }
它不起作用,但当我将数据类型更改为string
时,会显示注释的错误消息。这是否意味着不支持int
?
答案 0 :(得分:4)
您将获得0到0,这就是为什么验证看起来不适用于该类型 - 0是一个值。
尝试将类型更改为可为空的int(int?
),然后就可以了。
答案 1 :(得分:0)
如果用户的输入是空字符串,则该值将转换为null。无法将空值赋给int类型变量。因此,在将null值绑定到int变量之前,甚至在达到EF验证之前,已经抛出了错误。因此[Required(ErrorMessage="The number attribute is required")]
代码不会被执行。
使用nullable int(int?
)接受用户的null和空值。随后,将执行EF验证,您可以执行"没有空输入"使用[Required]
注释进行验证。