我正在尝试验证隐藏的整数属性,你能提出更好的方法吗
public class Model
{
[Display(Name="Theme"),Required(ErrorMessage="Please choose your theme")]
public int ThemeId { get; set; }
}
在 View 中
@Html.Hidden(m=>m.ThemeId)
这个输出<input type="hidden" bbla bla value="0"/>
问题是当前这个字段是有效的,因为 0 是 int 属性的默认值,所以属性中每个必需的默认值都是有效的。所以我必须让它无效。
我的解决方案是
只需使用 Range(1,int.MaxValue)
该属性的属性。
我只是想知道这是不是解决这个问题的最佳方法。如果不能,请指出更好的解决方案。
最佳答案
我遇到了同样的问题,但没有想出更好的解决方案。
这完全正确,因为您说的是此属性的值 范围是1..MaxInt
。
我能看到的唯一其他解决方案是使其成为可为空的整数,然后测试该值是否不为空。但是,这将包括零值和负值,因此您仍然需要检查它是否为正整数。
关于c# - 隐藏的 int 属性验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7538848/