0

asp.net mvc でほとんどのデータ注釈をローカライズできます。しかし、それらのいくつかについては、私はできません。たとえば、これを見てください:

public class TestModel {
    [Required(ErrorMessageResourceName="MyFloat",ErrorMessageResourceType=typeof(MyResource))]
    [Display(Name = "MyFloat", ResourceType = typeof(MyResource))]
    public float MyFloat { get; set; }
}

ご覧のとおり、ローカライズRequiredしてDisplay属性を付けることができます。ただし、エンドユーザーがフィールドに文字列を入力すると、バリデーターは次のメッセージでエラーをスローします。

フィールド MyFloat は数値でなければなりません。

このメッセージを変更する属性を見つけるためにすべての属性を検索しましたが、できませんでした。アイデアはありますか?前もって感謝します。

4

4 に答える 4

2

このデータ注釈を追加する方が簡単であることがわかりました。

 [RegularExpression(@"^[0-9]+$", ErrorMessageResourceName="MyFloat",ErrorMessageResourceType=typeof(MyResource))]

クライアント側で動作します

于 2013-11-05T15:44:31.290 に答える
0

Rangeあなたは属性で試すことができます:

[Range(float.MinValue, float.MaxValue, ErrorMessageResourceName = "IncorrectFloat", ErrorMessageResourceType=typeof(Resources))]
public float MyFloat { get; set; }
于 2013-02-08T16:34:05.743 に答える
0

これは一連の出来事の問題です。フレームワークとカスタムのもの。

受け取るデフォルトのメッセージは、フレームワークに深く組み込まれています。文字列リソースです。デフォルトのモデル バインダーは、文字列値を double 型にバインドするときに追加します。これは明らかにカスタム検証の前に行われるため、このデフォルトのエラー メッセージが最初に表示されます。

この動作を変更するには、カスタム モデル バインダーを作成する必要があります。カスタム モデル バインダーの作成方法の例はこちらです。

お役に立てれば。

于 2013-02-14T02:27:44.480 に答える
0

クライアント側の場合は、これを jquery.validate.js ファイルの最後に追加するか、別の javascript ファイルに追加して、直後に参照することを心配しています。

jQuery.extend(jQuery.validator.messages, {
  required: "Este campo es obligatorio.",
  remote: "Por favor, llenar este campo.",
  email: "Debe escribir una dirección de correo válida",
  url: "Debe escribir una dirección válida.",
  date: "Debe escribit una fecha válida.",
  dateISO: "Debe escribit una fecha (ISO) válida.",
  number: "Debe escribir un número válido.",
  digits: "Por favor, esribir sólo dígitos.",
  creditcard: "Debe escribir un número de tarjeta válido.",
  equalTo: "Por favor, escribir el mismo valor nuevamente.",
  accept: "Por favor, escribir un valor con una extensión aceptada.",
  maxlength: jQuery.validator.format("Por favor, no escribir más de {0} caracteres."),
  minlength: jQuery.validator.format("Por favor, no escribir menos de {0} caracteres."),
  rangelength: jQuery.validator.format("Por favor, escribir un valor entre {0} y {1} caracteres."),
  range: jQuery.validator.format("Por favor, escribir un valor entre {0} y {1}."),
  max: jQuery.validator.format("Por favor, escribir un valor menor o igual a {0}."),
  min: jQuery.validator.format("Por favor, escribir un valor mayor o igual a {0}.")
});

これにより、メッセージがローカライズされます。

于 2013-02-14T05:08:47.830 に答える