我如何使用长类型的DataAnnotation范围?

时间:2017-08-31 03:27:42

标签: c# asp.net

我尝试使用Range创建DataAnnotation以输入long个号码,但它始终会抛出异常,我无法修复它。我认为问题是因为我需要输入一个大数字作为示例07608800000070然后它会抛出异常。

我该如何解决这个问题?

我正在尝试

[Range(minimum: 1, maximum: 999999999999999, ErrorMessage = "Type the Parcel ID")]
public long parcelID  {get;set;}

异常

A first chance exception of type 'System.OverflowException' occurred in mscorlib.dll

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,这是由于bug in jQuery Validation。他们声称这是固定的,但我认为这又被打破了。我使用了workaround(或修复)。

正在发生的事情是客户端允许的数字大于范围,因为范围JS代码有一个错误,因此当该大数字到达服务器时,服务器端验证由于此错误而中断:

  

类型' System.OverflowException'的第一次机会异常。发生在mscorlib.dll

确保您的范围的最大值可以适合您使用的长(或任何数据类型),否则即使客户端验证工作,如果它不适合,您仍将在服务器端获得错误它

答案 1 :(得分:0)

无法进行客户端验证。我需要修复或解决方法。

这是我使用范围数据注释属性的方式:

[Range(1, int.MaxValue, ErrorMessage = "Geçerli bir tam sayı değer yazınız!")]