2014-02-16 9 views
0

ClientInfo 테이블을 업데이트하려고합니다. 그러나 그것은 업데이트되지 않으며 Undefined를 보여줍니다. 아래의 코드는 내 컨트롤러에서 데이터베이스 테이블 데이터를 업데이트하는 데 사용되었습니다. 내 문제는 어디서 찾을 수없는거야? 전문가들은 데이터베이스 업데이트의왜 내 데이터가 업데이트되지 않습니까?

@section scripts{ 
    @Scripts.Render("~/bundles/jqueryui") 
    @Scripts.Render("~/bundles/jqueryval") 
    @Styles.Render("~/Content/themes/base/css") 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#CId').blur(function() { 
      var v = $('#CId').val(); 
      var url = "/Clients/Search2/" + v; 
      // alert("Test : " + url); 

      $("#CName").val(""); 
      $("#CCName").val(""); 
      $("#PhoneNo").val(""); 
      $("#Fax").val(""); 
      $("#Email").val(""); 
      $("#Address").val(""); 
      $("#PostalCode").val(""); 
      $("#Country").val(""); 

      $.getJSON(url, null, function (data, status) { 
       $.each(data, function (index, C) { 
        $("#CName").val(C.CName); 
        $("#CCName").val(C.CCName); 
        $("#PhoneNo").val(C.PhoneNo); 
        $("#Fax").val(C.Fax); 
        $("#Email").val(C.Email); 
        $("#Address").val(C.Address); 
        $("#PostalCode").val(C.PostalCode); 
        $("#Country").val(C.Country); 
       }); 
      }); 
     }); 

.. ..

[HttpPost] 
     public JsonResult Update(ClientInfo clnt, int id) 
     { 
      if (ModelState.IsValid) 
      { 
       ClientInfo c = db.Query<ClientInfo>("Select * from ClientInfo Where [email protected]", id).First<ClientInfo>(); 
       c.CName = clnt.CName; 
       c.CCName = clnt.CCName; 
       c.Address = clnt.Address; 
       c.PhoneNo = clnt.PhoneNo; 
       c.Fax = clnt.Fax; 
       c.Email = clnt.Email; 
       c.Country = clnt.Country; 
       c.PostalCode = clnt.PostalCode; 
       c.Update(); 
       return Json(c, JsonRequestBehavior.AllowGet); 
      } 
      else 
       return Json(new { msg = "Fail to Update Client Info." + id }); 
     } 

을 도와 그리고 데이터

public JsonResult Search2(string id=null) 
     { 
      if (id != null) 
      { 
       var sresult = db.Query<ClientInfo>("Where CId=" + id).ToList<ClientInfo>(); 
       return Json(sresult, JsonRequestBehavior.AllowGet); 
      } 
      else 
       return null; 
     } 

그리고 CID 값으로 데이터를 검색하기위한 뷰에서 내 아약스 전화를 검색하기위한 컨트롤러를 검색하시기 바랍니다 나는이 기능을 사용했다 ...

 $('#btnUpdate').click(function() { 
      var CId = $("#CId").val(); 
      var CName = $("#CName").val(); 
      var CCName = $("#CCName").val(); 
      var PhoneNo = $("#PhoneNo").val(); 
      var Fax = $("#Fax").val(); 
      var Email = $("#Email").val(); 
      var Address = $("#Address").val(); 
      var PostalCode = $("#PostalCode").val(); 
      var Country = $("#Country").val(); 

      var client1 = { 
       "CId": CId, 
       "CName": CName, 
       "CCName": CCName, 
       "PhoneNo": PhoneNo, 
       "Fax": Fax, 
       "Email": Email, 
       "Address": Address, 
       "PostalCode": PostalCode, 
       "Country": Country 
      }; 

      var lk = "/Clients/Update/" + CId; 

      //alert("Test : Update " + lk + "\n" + client1.Country); 
      client = JSON.stringify(client1); 

      $.ajax({ 
       cashe: false, 
       async: false, 
       url: lk, 
       type: 'POST', 
       data: client, 
       dataType: "json", 
       success: function (data) { 
        alert(data.msg); 
       }, 
       error: function (data) { 
        alert(data.msg); 
       } 
      }); 

     }); 
    }); 

</script> 
} 
+0

c.Update() 메소드 정의를 제공하십시오. –

+0

@KundanSinghChouhan 보스, 나는 c.update 메소드 정의가 무엇인지 이해하지 못합니다. 하지만 마이크로 오메가 petapoco를 사용하여, 그것은 모든 준비 CS 파일을 제공합니다. 내 프로젝트에서이 코드를 사용하고 있습니다. – MNAH

+0

@MNAH 엔티티 프레임 워크 또는 자체 데이터 액세스 레이어 구현을 사용하고 있습니까? – Candide

답변

0

DBContext에 save 메소드가 있어야합니다.이 메소드를 실행해야합니다.

저장()을 실행 했습니까? 방법? 당신이 당신의 경고 메시지 상자에서 Undefined을 의미하는 경우

+0

작성 메서드에서 나는이 save(); 이 코드는 입니다. [HttpPost] public ActionResult Create (ClientInfo ci) { ClientInfo cil = new ClientInfo(); 시도 { // 여기에 삽입 논리를 추가하십시오. if (ModelState.IsValid) { ci.Save(); return RedirectToAction ("Index"); } 돌아 가기보기 (cil); } catch { return View(); } } – MNAH

1

, 그것은 간단합니다

$.ajax({ 
    cashe: false, 
    async: false, 
    url: lk, 
    type: 'POST', 
    data: client, 
    dataType: "json", 
    success: function (data) { 
     alert(data.msg); 
    }, 
    error: function (data) { 
     alert(data.msg); 
    } 
}); 

귀하의 아약스 코드 data.msg의 내용을 표시합니다. 그러나 모델이 유효하면 데이터베이스에서 모델을 검색하고 모델을 업데이트 한 다음 새 모델을 반환합니다. 성공한 경우 msg json 속성이 없으므로 data.msg은 정의되지 않습니다. 당신이 성공 메시지를 반환 할 경우

, 당신은 당신이 data.msg의 메시지 data.record에 새로 업데이트 된 기록이있을 것이다

return Json(new { msg = "Update Successful.", record = c }, JsonRequestBehavior.AllowGet); 

return Json(c, JsonRequestBehavior.AllowGet); 

을 변경해야합니다.

+0

보스는 여전히 동일한 문제가 있습니다. Undefined .. – MNAH

+0

그런 다음 서버에서 반환되는 Firebug 출력/json 문자열을 게시하십시오. – Tseng

관련 문제