私は次のように注釈されている特定のフィールドがあります。なぜMVC 3検証が私の上書きですか?私のモデルでは
:私はそれは私のモデル国家に次のエラーメッセージを与えている試みのIDで不正なデータを入力すると[DataType(System.ComponentModel.DataAnnotations.DataType.Text)]
[RegularExpression("[0-9]{1,10}", ErrorMessage = "The stated Attempt Id is invalid!")]
public long? AttemptId { get; set; }
を
The value 'cbcbxcb' is not valid for AttemptId.
私は他のフィールドに同様のエラーメッセージがありますが、長い文字列ではなく文字列です。無効な値が指定された場合に正しいエラーメッセージが表示されています。なぜ、「長い?」というメッセージはないのですか?使用されています?私は、ページに次のリテラルタグを使ってエラーを表示しています。
<%: Html.TValidationSummary() %>
編集:私は、次のモデルで検証を変更しようとしています
[Required(ErrorMessage="The stated Attempt Id is invalid!", AllowEmptyStrings=true)]
これは、しかし、まだ正しくありません。まず、フィールドを空のままにしておく必要があります。それを行うと、「指定された試行IDは無効です!」というメッセージが表示されます。エラーメッセージ。次に、フィールドに無効なデータを入力すると、古いエラーメッセージに戻ります。
答えをありがとう。今や、その特定のフィールドは本当に必須フィールドではないので、ユーザーはドットを空にしておく必要があります。あなたが「必須」としてバインドせずに提案していることをやり遂げる方法はありますか? –
私は検証を '[Required(ErrorMessage = "指定された試行IDは無効です!"、AllowEmptyStrings = true)]'に変更し、空であればエラーメッセージを表示し、エラーメッセージが無効です。 –
パラメータが必須でない場合、代替ソリューションを提供するように編集しました – DaveRead