2013-01-23 47 views
3

在我看来,我有以下几点:MVC ValidationMessageFor不能正常工作

 <fieldset> 
     <legend>User Registration</legend>    
     <div class="editor-label"> 
      @Html.LabelFor(m => m.UsrName) 
     </div> 
     <div class="editor-field"> 
      @Html.TextBoxFor(m => m.UsrName) 
      @Html.ValidationMessageFor(m => m.UsrName) 
     </div> 
     <div class="editor-label"> 
      @Html.LabelFor(m => m.Pwd) 
     </div> 
     <div class="editor-field"> 
      @Html.PasswordFor(m => m.Pwd) 
      @Html.ValidationMessageFor(m => m.Pwd) 
     </div> 
     <div class="editor-label"> 
      @Html.LabelFor(m => m.ReEnterPwd) 
     </div> 
     <div class="editor-field"> 
      @Html.PasswordFor(m => m.ReEnterPwd) 
      @Html.ValidationMessageFor(m => m.ReEnterPwd) 
     </div>    
     <fieldset> 
     <legend>Location</legend> 
      <span id="locationDiv"> 
      @Html.RadioButtonFor(m => m.Location, "Loc1") @Html.Label("Loc1") 
      &nbsp;&nbsp; 
      </span> 
      @Html.RadioButtonFor(m => m.Location, "Loc2") @Html.Label("Loc2")    
      @Html.ValidationMessageFor(m => m.Location) 
     </fieldset>   

     <fieldset> 
     <legend>Role</legend> 
      @Html.RadioButtonFor(m => m.Role, "User") @Html.Label("User") 
      &nbsp;&nbsp; @Html.RadioButtonFor(m => m.Role, "Admin") @Html.Label("Admin") 
      @Html.ValidationMessageFor(m => m.Role) 
     </fieldset> 

     <p> 
      <input type="submit" value="Register User" /> 
     </p> 
    </fieldset> 

即使我没有做的所有字段填写,它仍然去,即使他们都是必需的控制器。我以为

@Html.ValidationMessageFor 

应该阻止。

[Required] 
    public string Location { get; set; } 

    [Required] 
    public string Role { get; set; } 

    [Required] 
    [Display(Name = "User Name")] 
    public string UsrName { get; set; } 

    [Required] 
    [StringLength(50, MinimumLength = 5, ErrorMessage = "Must have a minimum length of 5.")] 
    public string Pwd { get; set; } 

    [Required] 
    [Display(Name = "Re-enter Password")] 
    [StringLength(50, MinimumLength = 5, ErrorMessage = "Must have a minimum length of 5.")] 
    [Compare("Pwd", ErrorMessage = "The password and re-entered password do not match.")] 
    public string ReEnterPwd { get; set; } 
+0

几个问题:贵的形式有 “@ Html.ValidationSummary(真” 在web.config中 –

+4

:<添加键=” ClientValidationEnabled“value =”true“/> ??? –

+2

并确认您已附加jquery验证脚本文件...也许jquery.validate.unobtrusive。 min.js文件丢失? – gustavodidomenico

回答

17

您必须在视图中包括以下脚本:

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 
+0

与上面的@Dave A的评论一起,这是正确的。 –

+0

Bahman,用户从来没有向我们展示他们的观点。你确定他们错过了那些图书馆吗? –

+0

我猜如此戴夫! – Bahman