0

@Html.ValidationMessageForを含む@Html.TextBoxForコントロールがありますが、これは必須フィールドではありませんが、最大長に制限があり、数値のみを許可する必要があります。私はViewModelで次のコードを与えました:

    [StringLength(10, ErrorMessage = "The field Phone must have a maximum length of 10")]
    public string Phone { get; set; }

ボタンをクリックすると、10文字を超えて入力したときに、上記の検証メッセージを取得できません。

また、数値かどうかをどのように検証しますか?

4

2 に答える 2

2

Phone投稿先のコントローラー アクションは、プロパティをパラメーターとして含むビュー モデルを取得する必要があります。

[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
    ...
}

または、そうでない場合は、内部のUpdateModelまたはTryUpdateModelメソッドを呼び出して、検証ロジックを呼び出し、潜在的なエラー メッセージを ModelState に挿入する役割を持つ既定のモデル バインダーを呼び出す必要があります。

また、数値かどうかを検証するにはどうすればよいですか?

正規表現を使用できます:

[StringLength(10, ErrorMessage = "The field Phone must have a maximum length of 10")]
[RegularExpression(@"\d*", ErrorMessage = "The field Phone must contain only digits")]
public string Phone { get; set; }
于 2012-08-24T07:41:39.030 に答える
0
[MaxLength(10, ErrorMessage = "yourmessage")]
public string Phone

ただし、「phone + regex」をグーグルで検索するだけで、正規表現で修正することもできます。regexAttrを使用してmaxlengthで検証できることを確認してください

于 2012-08-24T08:49:50.160 に答える