2

次のアクションメソッドがあります。

 public ActionResult SignUp(Player player)
 {
        if (ModelState.IsValid) 
        {...}
 }

問題は、Player モデルにエラーがある場合でも、ModelState.IsValid が常に true を返すことです。Player クラスでは、一部のプロパティを文字列の長さなどのデータ注釈で装飾しました。ModelState.IsValid を呼び出す前に TryValidateModel(player) メソッドを呼び出すと、正常に動作し、false が返されます。どんな助けでも大歓迎です。

Player モデルは次のようになります。

public class Player
{
    public int PlayerID
    {
        get;

        set;
    }

    [Required(ErrorMessage = "Name is required.")]
    [StringLength(10, ErrorMessage = "Name must be under 11 characters.")]
    public String Name
    {
        get;

        set;
    }

    [Required(ErrorMessage = "Password is required.")]
    [StringLength(10, ErrorMessage = "Password must be under 11 characters.")]
    public String Password
    {
        get;

        set;
    }
    ...
}
4

1 に答える 1

0

次の記事をご覧ください。ModelState.IsValid は常に true を返すという同じ質問にうまく答えています。

直接的な解決策がない場合 (あることを願っています)、いくつかのアイデアは確かに役立ちます。

これが役立つかどうか教えてください。

于 2012-09-25T14:31:15.367 に答える