質問

私のオブジェクトは、データのint型のフィールドがあります。私は、このテキストボックスの手紙にhtmlフォームに入れたときに、フィールドsay-バリデータを数ではない数でなければなりません。私はこのように、このメッセージを変更する方法

 [Required(ErrorMessage = "Введите название")]
    [DisplayName("Название")]
    public int age { get; set; }
役に立ちましたか?

解決

私は、データ注釈を使用して、これを達成するために、のクリーンの方法を発見していません。一つの方法は、カスタムモデルバインダーを書くことになりますが、これはこのような単純なタスクのために行うには多くの作業のように思えます。

これを達成するためのもう一つの方法は、あなたのASP.NETアプリケーションにApp_GlobalResourcesフォルダを追加することです。 Messages.resxの文字列リソースを含むPropertyValueRequiredというリソースファイルを追加します。

PropertyValueRequired = "Some custom error message"

あなたのApplication_Startでリソースクラスキーを登録します:

protected void Application_Start()
{
    RegisterRoutes(RouteTable.Routes);
    DefaultModelBinder.ResourceClassKey = "Messages";
}

ASP.NET MVC 2の代わりPropertyValueInvalidリソースキーのPropertyValueRequiredを使用することに注意してください。

IMO(多分、これは変更され、.NET 4に)制限される検証ロジックを実行するデータアノテーションを使用して。あなたは検証ロジックを完全に制御を持っているしたい場合は、私は、このような流暢検証や XVALするます。

他のヒント

私は同じ問題に遭遇した唯一の正の自然数を可能にする正規表現を指定することで、その周りに働いています。

[Required(ErrorMessage = "Введите название")]
[DisplayName("Название")]
[RegularExpression(@"^[0-9]+$", ErrorMessage = "Поле возраст не является числом")]
public int age { get; set; }
このソリューションへのなdownfallsがある場合は、

わかりません。私のために正常に動作するようです。

PS:あなたは先行ゼロが"^[1-9]+[0-9]*$"を使用できるようにしたくない場合は、

振り返ってみると:私はそれを整数に正規表現を追加するために少し奇妙なものの認めざるを得ない。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top