2

我有以下操作方法:ModelState.IsValid总是返回true

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

的问题是,即使我有我的播放器模型的错误,ModelState.IsValid总是返回true。在Player类中,我使用数据注释为字符串长度等装饰了一些属性。如果在调用ModelState.IsValid之前调用TryValidateModel(player)方法,它将正常工作,它将返回false。任何帮助表示赞赏。

玩家模型是这样的:

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; 
    } 
    ... 
} 
+2

向我们展示您的模型 –

+1

您可以发布您的视图,特别是您的BeginForm等。另外请告诉我们你最初是如何呈现你的观点的。你正在使用RenderPartial还是有另一种操作方法可以为你做到这一点?所有模型绑定都起作用。 –

+0

这个错误肯定会出现在你的视图中,它将是输入字段的命名或其他东西,它不能绑定回你的模型。请向我们展示您的注册视图。 – eth0

回答

0

请看看下面的文章,他们成功地回答了同样的问题,你有:ModelState.IsValid always returning true

如果没有直接的解决方法(我希望有),那么一些想法肯定会有用。

请让我知道这是否有帮助。