私のモデルには、次のように注釈が付けられた特定のフィールドがあります。
[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.
同様のエラーメッセージが表示される他のフィールドがありますが、それらはlongではなくstring型ですか?無効な値が指定された場合、正しいエラーメッセージが表示されます。「長い」というメッセージが表示されないのはなぜですか。使用されています?ページ内の次のリテラルタグを使用してエラーを表示しています。
<%: Html.TValidationSummary() %>
編集:モデルの検証を次のように変更しようとしました:
[Required(ErrorMessage="The stated Attempt Id is invalid!", AllowEmptyStrings=true)]
ただし、これはまだ正しくありません。まず、フィールドを空のままにしておく必要があります。そうすると、「指定された試行IDは無効です!」というメッセージが表示されます。エラーメッセージ。次に、フィールドに無効なデータを入力すると、以前の不正なエラーメッセージに戻ります。