2011-06-16 159 views
2

我有验证在MVC剃刀的形式的问题击发Binding类是以下基于关闭一个抽象类(没有验证在抽象类)MVC剃刀验证不上的textarea

[GeminiDisplayName("You are about To reject the following Purchase Order", false)] 
    public class PORejected : PoApprovalItems 
    { 
     public PORejected() { } 
     [GeminiDisplayName("Rejection Reason")] 
     [Required(AllowEmptyStrings = false, ErrorMessage = "Rejection Reason is Required")] 
     public string RejectReason { get; set; } 

     public override bool IsApproved 
     { 
      get 
      { 
       return false; 
      } 
     } 
    } 

和观点如下

@model Gemini.Models.PORejected 
    @section Head{ 
     <script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script> 
     <script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script> 
     <script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script> 
     <script src="@Url.Content("~/Scripts/MicrosoftMvcValidation.js")" type="text/javascript"></script> 
     <script src="@Url.Content("~/Scripts/PageScripts/_Approval.js")" type="text/javascript"></script> 
    } 
    @section TabHeader{ 
     <li><a href="#ApprovalItem">Reject Approval for PO @Model.PO_Number</a></li> 
    } 
    @section TabContent{ 
     @{ 
      Html.EnableClientValidation(); 
     } 
     <div id="ApprovalItem"> 
      @{ 
       @Html.ValidationSummary(false) 
       using (Html.BeginForm("Approve", "PO", FormMethod.Post)) 
       { 

       @Html.Partial("Approval/ApprovalDetails", Model) 
       <div class="display-label"> 
        <table width="100%" cellpadding="0" cellspacing="0" border="0"> 
         <tr> 
          <td width="15%"> 
           @Html.LabelFor(x => x.RejectReason) 
          </td> 
          <td> 
           @Html.TextAreaFor(x => x.RejectReason, new { @Class = "mceEditor required", @style = "width:60%;" }) 
           @Html.ValidationMessageFor(x => x.RejectReason) 
          </td> 
         </tr> 
        </table> 
        <div style="float: right;"> 
         <input type="button" value="Close" /> 
         <input type="submit" value="Reject" /> 
        </div> 
       </div> 
        Html.EndForm(); 
       } 
      } 
     </div> 
    } 

的事情是,当我点击提交按钮,它做任何验证之前触发中断,即使它应该验证

我的问题是我究竟做错了什么?

更新 找到了答案,最终我错过了以下从页面。 <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>

回答

2

找到答案最终我错过了以下从页面。 <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>

1

这条线是干什么用的?

Html.EnableClientValidation(false); 

这会禁用客户端验证。另外,不需要在每个视图上设置UnobtrusiveParameters,在Web配置中设置它们一次。

+0

对不起,这是一个编辑,我一直在尝试不同的东西,以使其工作从未拿出来。无论它被取出,它仍然不起火。 – Qpirate 2011-06-16 10:43:23

+0

找到答案最终我错过了一个电话 – Qpirate 2011-06-16 15:09:35