值“(SomeNumber)”对 Number 无效
The value '(SomeNumber)' is not valid for Number
我正在使用数据注释,这是一个关于 phone 本书的简单项目我想添加一个人,我不知道为什么我会收到
The value '09124573957' is not valid for Number
当我按下创建按钮时,我的编辑框出现错误
这是我在视图模型中的 dto
[Required(ErrorMessageResourceType = typeof(App_Globaliz.Resource1), ErrorMessageResourceName = "Number")]
[DisplayName("Number")]
// [Phone]
[Range (0, 09889999999, ErrorMessageResourceName = "Range", ErrorMessageResourceType = typeof(App_Globaliz.Resource1))]
public int Num { get; set; }
你应该知道我正在使用一个资源文件,我在里面写了一些错误文本但是这个错误我不知道它是从哪里来的
整数不支持前导零。如果您尝试设置值 9124573957
,您应该不会看到此错误。 编辑:这仅在您使用 long
而不是 int
来存储值时才有效,因为 9124573957 大于 int.MaxValue
.
如果必须支持前导零,则必须将值存储为 string
。
数字数据类型(int、double 等)适合做数学题!问问自己:将其中两个数字相加是否有用,例如你的电话号码和你朋友的电话号码相加是什么意思?如果那根本没有意义,那它就不是一个数字。
电话号码是字符串,尽管它们通常被称为数字。
您的 range validator
不工作,因为数字不支持前导零..和 range validator works on numeric type
它将使用 RegularExpression validator
...类似这样的东西...
[Required(ErrorMessageResourceType = typeof(App_Globaliz.Resource1), ErrorMessageResourceName = "Number")]
[Display(Name = "Number")]
[DataType(DataType.PhoneNumber)]
[RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$", ErrorMessage = "Not a valid number")]
public string PhoneNumber { get; set; }
Phone 数字应该存储为字符串而不是数字
因为:
- 有些数字以 0 或 + 开头,不能存储在任何数值中(例如“002121132434”或“+9772323212”
- 您需要搜索 phone 个数字作为字符串(例如,以特定子字符串开头的数字代表特定区域或特定服务提供商)
- 您需要进行一些字符串格式化(例如“+977-232-3212”)
- 您永远不需要进行数学运算(例如,您永远不会加减 2 phone 个数字)
我正在使用数据注释,这是一个关于 phone 本书的简单项目我想添加一个人,我不知道为什么我会收到
The value '09124573957' is not valid for Number
当我按下创建按钮时,我的编辑框出现错误
这是我在视图模型中的 dto
[Required(ErrorMessageResourceType = typeof(App_Globaliz.Resource1), ErrorMessageResourceName = "Number")]
[DisplayName("Number")]
// [Phone]
[Range (0, 09889999999, ErrorMessageResourceName = "Range", ErrorMessageResourceType = typeof(App_Globaliz.Resource1))]
public int Num { get; set; }
你应该知道我正在使用一个资源文件,我在里面写了一些错误文本但是这个错误我不知道它是从哪里来的
整数不支持前导零。如果您尝试设置值 9124573957
,您应该不会看到此错误。 编辑:这仅在您使用 long
而不是 int
来存储值时才有效,因为 9124573957 大于 int.MaxValue
.
如果必须支持前导零,则必须将值存储为 string
。
数字数据类型(int、double 等)适合做数学题!问问自己:将其中两个数字相加是否有用,例如你的电话号码和你朋友的电话号码相加是什么意思?如果那根本没有意义,那它就不是一个数字。
电话号码是字符串,尽管它们通常被称为数字。
您的 range validator
不工作,因为数字不支持前导零..和 range validator works on numeric type
它将使用 RegularExpression validator
...类似这样的东西...
[Required(ErrorMessageResourceType = typeof(App_Globaliz.Resource1), ErrorMessageResourceName = "Number")]
[Display(Name = "Number")]
[DataType(DataType.PhoneNumber)]
[RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$", ErrorMessage = "Not a valid number")]
public string PhoneNumber { get; set; }
Phone 数字应该存储为字符串而不是数字
因为:
- 有些数字以 0 或 + 开头,不能存储在任何数值中(例如“002121132434”或“+9772323212”
- 您需要搜索 phone 个数字作为字符串(例如,以特定子字符串开头的数字代表特定区域或特定服务提供商)
- 您需要进行一些字符串格式化(例如“+977-232-3212”)
- 您永远不需要进行数学运算(例如,您永远不会加减 2 phone 个数字)