2013-03-16 45 views
0

我正在開發MVC應用程序。如何防止重複數據的保存?

我在Creat-Veiw中使用Jquery來驗證數據。

我正在添加角色並檢查該角色(或者您可以說UserName)是否已經存在於數據庫中。 如果Role已經存在,那麼應該顯示驗證消息,並且不應允許添加到db中(不應允許保存)。

我有一個接受角色的文本框,我已經檢查了模糊函數是否已經存在角色。

每件事情都很好,如果角色已經存在,那麼驗證信息就會出現。 但點擊保存按鈕後,它保存在分貝。

我想阻止它?這個怎麼做 ?

我有下面的代碼創建視圖。

@model IEnumerable<PaymentAdviceEntity.Role> 
    <div id="roleList"> 
    <div class="span6"> 
    <div class="span12 HeaderField2"> 
     Roles 
    <legend style="margin-bottom:2px;margin-top:5px;"></legend> 
    </div> 

    <div class="span12">  




     <div style="display:inline-block"></div> 
     <div id="addrole" style="display:none"> 
     <span> @Html.TextBox("RoleName", String.Empty, new { @id = "RoleName",style="margin-bottom:0px;" })</span> 

      <span> 
       <input type="button" value="Save" id="btnSave"/> 
       <input type="button" value="Cancel" id="btnCancel" /> 
      </span> 
     </div>  
     <div style="margin-top:5px;"> 
<span id="RoleNameValidation" style="display:none;color:Red;">Role already exists</span> 
     </div> 

    </div> 
    </div> 

爲此,我使用下面的jquery。

$("#RoleName").blur(function() 
    { 
     var Role_Name = $('#RoleName').val(); 
     //alert(RoleName); 
     var url = "@Html.Raw(Url.Action("checkForUniqueName","Role",new {@RName = "RoleName"}))"; 
     url = url.replace("RoleName", Role_Name); 
     $.post(url, function (data) 
     { 
      if (data == false) { 

       $("#RoleNameValidation").show(); 
       $('#RoleName').focus(); 
      } 
      else { 
       $("#RoleNameValidation").hide() 
      } 
     }); 
    }); 

和控制器代碼是....

public ActionResult checkForUniqueName(string RName) 
     { 
      bool Valid = false; 

      var RoleList = from e in db.Roles 
          where e.Name.Equals(RName) 
          select e; 
      if (RoleList.Count() > 0) 
      { 
       Valid = false; 
      } 
      else 
      { 
       Valid = true; 
      } 

      return Json(Valid, JsonRequestBehavior.AllowGet); 


     } 

回答

0

您可以使用驗證用於此目的,如果你不想在數據庫中插入重複記錄。

嘗試創建使用(使用addMethod),它檢查的作用是database.You已經存在,可以在http://matthewmuro.com/2012/05/08/adding-custom-jquery-validation-to-your-form/

+0

驗證的信息,那就找好幫助jQuery驗證插件自定義規則...但仍錄得到保存... – Nil 2013-03-16 06:46:06

+0

請確保您在表格中附上此表單並在提交時驗證表單,如果表單有效,那麼只需執行控制器操作 – Cris 2013-03-16 07:48:36

+1

您應該檢查執行保存操作的控制器以及使用jQuery驗證 – 2013-03-16 08:22:39