2014-07-26 2 views
0

내부 부분보기에 내가 MVC에서 일하고 있어요 다음과 같이 내가 하나 개의 시나리오를 가지고 : 내가 위원장 가능한 자원의 그리드와 새로운 자원을 추가 할 수있는 버튼에서 보여 ManageResource 작업이라고 볼 수있다. 내가 새로 추가 자원 버튼에 내부 partialview 오픈 팝업 위원장을 클릭하면, 나는 밖으로 어떤 값을 입력하고 난 필수 필드를 입력 할 때 값이 채워해야으로 저장을 클릭하면 팝업 자체 검증 결과를 표시해야 그리드의 팝업은 "스피 팝업의 검증 결과를 받고 있지만, 수 저장할 수있는 데이터의 없다"확인 팝업

다음은 내 코드입니다

을 closed.`해야합니다

Model-tblUser 
public partial class tblUser 
{ 
     public int UID { get; set; } 
     [Required] 
     public int EmpID { get; set; } 
     [Required] 
     public string FirstName { get; set; } 
     [Required] 
     public string LastName { get; set; }  
     [Required] 
     public decimal Salary { get; set; }  
} 

View-ManageResource 
  function Create() { 

      BootstrapDialog.show({ 
      title: "Add Resource", 
      message: $('<div id="CreatePopup"></div>').load('@Url.Action("Create", "Resource")') 
      }); 
      return false; 
      } 

    <input type="button" id="AddNewCompany" onclick="Create()" class="push_button blue btn_width" value="Add New Resource" /> 
partial view- Create 

function SaveResource() { 

     var obj = []; 
     var EmpID = $('#EmpID').val(); 
     var FirstName = $('#FirstName').val(); 
     var LastName = $('#LastName').val();   
     var Salary = $('#Salary').val(); 
     if ($("#IsActive").attr('checked', true)) { 
      var IsActive = 1; 
     } 
     else { 
      var IsActive = 0 
     } 

     var newrecord = { 
      "EmpID": EmpID, "FirstName": FirstName, "LastName": LastName, "Salary": Salary, 
     };  
     var senddata = JSON.stringify(newrecord); 

    jQuery.ajax({ 
     type: "POST", 
     url: '@Url.Action("Create", "Resource")', 
     data: JSON.stringify({ "data": senddata }), 
     datatype: 'json', 
     contentType: "application/json; charset=utf-8", 
     success: function (result) {    
      if (result == true) {    
       window.location.href = '@Url.Action("ManageResource", "Resource")'; 
      } else {    
       $("#CreatePopup").html(result); 
       } 
      } 
     });   
    } 

@using (Html.BeginForm())

 @Html.ValidationSummary(false) 

     <div class="form-group"> 
      @Html.LabelFor(model => model.EmpID, "Employee ID", new { @class = "control-label col-md-1 col-md-3" }) 
      <div class="col-md-6"> 
       @Html.EditorFor(model => model.EmpID) 
       @Html.ValidationMessageFor(model => model.EmpID) 


      </div> 
     </div> 

     <div class="form-group"> 
      @Html.LabelFor(model => model.FirstName,"First Name", new { @class = "control-label col-md-1 col-md-3" }) 
      <div class="col-md-6"> 
       @Html.EditorFor(model => model.FirstName) 
       @Html.ValidationMessageFor(model => model.FirstName) 
      </div> 
     </div> 

     <div class="form-group"> 
      @Html.LabelFor(model => model.LastName,"Last Name", new { @class = "control-label col-md-1 col-md-3" }) 
      <div class="col-md-6"> 
       @Html.EditorFor(model => model.LastName) 
       @Html.ValidationMessageFor(model => model.LastName) 
      </div> 
     </div>   

     <div class="form-group"> 
      <div class="col-md-offset-5 col-md-10"> 
       <input type="button" id="CreateResource" onclick="SaveResource()" value="Create" class="btn btn-default" /> 
      </div> 
     </div> 
      </div>  
} 
Resource Controller  

     public PartialViewResult Create(string data) 
     {    
     JObject o = JObject.Parse(data);//parsing the json data 

     tblUser tbluser = new tblUser(); //creating instance for model tblUser  

      if ((string)o["EmpID"] != "" && (string)o["FirstName"] != "")// if all the required fields are present then add to db 
       { 
        db.tblUsers.Add(tbluser);//assign values here 
        tbluser.EmpID = (int)o["EmpID"]; 
        tbluser.FirstName = (string)o["FirstName"]; 
       tbluser.FirstName = (string)o["FirstName"]; 
       tbluser.LastName = (string)o["LastName"]; 
       tbluser.EmailID = (string)o["EmailID"]; 
       tbluser.Password = (string)o["Password"]; 
       tbluser.RoleID = (int)o["RoleID"]; 
       tbluser.DeptID = (int)o["DeptID"]; 
       tbluser.DesignationID = (int)o["DesignationID"]; 
       tbluser.Salary = (int)o["Salary"]; 
       tbluser.IsActive = (bool)o["IsActive"]; 
       tbluser.CreatedBy = 121; 
       tbluser.CreatedDate = System.DateTime.Now; 
       tbluser.UpdatedBy = 121; 
       tbluser.UpdatedDate = System.DateTime.Now; 
       db.SaveChanges();      
       return RedirectToAction("ManageResource");//return to main view when saved 
      } 
      else 
      { 
       //return with validation summary to partialview popup 
       return PartialView(tbluser); 
      }     
     } 
+0

PLZ 형식을 통해 UR 질문 ... –

답변

0

{ @ Html.AntiForgeryToken() 당신이로드 당신이 필요로하는 AJAX를 사용하는 폼 jQuery의 눈에 띄지 않는 유효성 검사를 통해 폼 요소에 validation data- 속성을 추가하십시오. $.validator.unobtrusive.parse('#YourFormSelector');

.load이 완료된 후 : 당신은 추가해야합니다.

function Create() { 

      BootstrapDialog.show({ 
      title: "Add Resource", 
      message: $('<div id="CreatePopup"></div>').load('@Url.Action("Create","Resource")' 
      , function() {$.validator.unobtrusive.parse('#YourFormSelector');}) 
      }); 
      return false; 
      } 
+0

나는 그것을 시도했지만 한 여전히 같은 문제 .. – user3755402

+0

성공 : 기능 (결과) { 경우 (결과 == TRUE) { window.location.href = ' @ Url.Action ("ManageResource", "Resource") '; . } 다른 { $ ("#의 경우 createPopUp") HTML (결과); }}} ); 진정한 전체보기를 경우 createPopUp의 DIV에로드지고하더라도'데이터'검증 속성이 존재하는 경우 폼이로드 된 후 .. – user3755402

+0

당신은'input's 확인 했습니까? –