3

フォームのデータ検証に問題があります。モデルでエラー メッセージを宣言していますが、ビューでは効果がないようです。私は次のモデルを持っています:

public class Dog
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Display(Name = "Id")]
    public int Id { get; set; }

    [Display(Name = "Name")]
    [StringLength(20)]
    public string Name { get; set; }

    [Display(Name = "Value")]
    [Range(1, int.MaxValue, ErrorMessage="Minimum value is 1")]
    public int Value { get; set; }
}

そしてビューにはこれがあります:

<div class="editor-field">
@Html.EditorFor(model => model.Value)
@Html.ValidationMessageFor(model => model.Value)
</div>

ここでわかるように、ユーザーが 1 より小さい数値を入力することを選択したときにエラー メッセージが表示されないことが問題です。

ここに画像の説明を入力

ここで何が欠けていますか?ご協力ありがとうございました。

4

2 に答える 2

3

タグがないこと、参照がないこと、または jQuery 検証に関する言及がないことから判断すると、古き良き方法(独創的な方法)を検証しようとしていることがわかります。

post メソッドで を呼び出して、自分で検証を呼び出すModelState.IsValid必要があります。それが失敗すると、エラー メッセージがエラーのあるフィールドに表示されます。あなたは次のようなものを持っていました:

[HttpPost]
public ActionResult Edit (Dog model)
{
    if (ModelState.IsValid)
    {
        //He's a good dog, save him, then redirect elsewhere
    }
    else
    {
        //He's a bad dog, return the same view and the errors are shown
        return View(model);
    }
}
于 2013-03-28T12:38:21.483 に答える
1

コメントで要求されたように、これを回答として追加します。

jQuery Validation プラグインへの参照を追加する

于 2013-03-28T20:02:19.457 に答える