次のアクションメソッドがあります。
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;
}
...
}