在我的模型中,我有一个以以下方式注释的特定字段:
[DataType(System.ComponentModel.DataAnnotations.DataType.Text)]
[RegularExpression("[0-9]{1,10}", ErrorMessage = "The stated Attempt Id is invalid!")]
public long? AttemptId { get; set; }
当我在尝试 ID 中输入不正确的数据时,它会在模型状态中给我以下错误消息:
The value 'cbcbxcb' is not valid for AttemptId.
我还有其他带有类似错误消息的字段,但它们的类型是字符串而不是长?并且在给出无效值的情况下会显示正确的错误消息。为什么不是“长”的消息?正在使用?我正在使用页面中的以下文字标签显示我的错误。
<%: Html.TValidationSummary() %>
编辑:我试图将模型中的验证更改为以下内容:
[Required(ErrorMessage="The stated Attempt Id is invalid!", AllowEmptyStrings=true)]
然而,这仍然是不正确的。首先,我需要让该字段留空,当我这样做时,它会给我“声明的尝试 ID 无效!” 错误信息。其次,当我在字段中输入无效数据时,它会恢复到原来的错误消息。