2014-09-10 55 views
0

我已經實現了一個mvc應用程序。我已經使用數據註釋進行驗證。 我的班級當按鈕類型是「按鈕」而不是提交時,數據註釋不起作用

public class AdviceCreateVM 
     {  
      [Key] 
      public int Id { get; set; } 

      [Required(ErrorMessage = "Company is required")] 
      public int CompanyId { get; set; } 
    } 

我的看法是

@using (Html.BeginForm("Create", "AdviceCreate", FormMethod.Post, new { enctype = "multipart/form-data", id = "frmCreate"})) 

{ 
    @Html.ValidationSummary(true) 

    <div class="row-fluid"> 
     <div class="span9 roundedDiv" style="margin-left: 10px;"> 

      <div class=" row-fluid Span12" style="margin-bottom: 15px"> 
       <div class="span6"> 
        <div class="span4"> 
         <label>Company</label> 
        </div> 
        <div class="span6"> 
         @Html.DropDownListFor(model => model.CompanyId, Model.Companies.Select(company => new SelectListItem { Value = company.Id.ToString(), Text = company.Name }), "--Select Company--") 
         @Html.ValidationMessageFor(model => model.CompanyId) 
        </div> 
       </div> 
     <input class="btn btn-primary" type="button" value="Create" id="create" /> 
} 

我用的一個按鈕從視圖提交操作和後數據用ajax到控制器。 jQuery代碼是,

var obj =$("#frmCreate").serializeArray(); 
     $.ajax({ 
      url: '@Url.Action("Create", "AdviceCreate")', 
       type: 'POST',     
       data:obj,     
       success: function (data) {    
        window.location.href='@Url.Action("index")';    
       } 
      }); 

我的問題是,當「companyId」爲空,如果我按一下按鈕,創建它應該顯示的數據標記消息。但消息沒有劑量顯示。 任何解決方案?

+0

您需要將jquery/javascript事件連接到按鈕單擊並在窗體上調用validate()方法。 – 2014-09-10 12:08:39

+0

@Dhanashri Kadam'數據註釋'將在HttpPost上運行.. – Pawan 2014-09-10 12:13:19

回答

0

代碼看起來很熟悉。當您手動提交表單時,請致電

$("#frmCreate").validate(); 
if($("#frmCreate").valid()) 
{ 

var obj =$("#frmCreate").serializeArray(); 
     $.ajax({ 
      url: '@Url.Action("Create", "AdviceCreate")', 
       type: 'POST',     
       data:obj,     
       success: function (data) {    
        window.location.href='@Url.Action("index")';    
       } 
      }); 

} 
0

您需要將jquery/javascript事件連接到按鈕單擊並在窗體上調用validate()方法。

$("#buttonSubmit").click(function(){ 
    if($("form").validate()) 
    { 
      //Post to server or other stuff, if the validation successful 
    } 
}); 

這是一個僞代碼,提供一個想法。