2014-02-16 132 views
0

我正在嘗試更新ClientInfo表。但它不更新並顯示未定義。這些代碼在我的控制器中用於更新我的數據庫表數據。我的問題在哪裏,我找不到?高手請幫我..爲什麼我的數據沒有更新?

[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值搜索的數據我Ajax調用..

@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); 
       }); 
      }); 
     }); 

對於數據庫更新我已經使用這個功能...

 $('#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方法定義。但我使用微型orm petapoco,它可以讓我準備好所有的cs文件。我只是在我的項目中使用這些代碼。 – MNAH

+0

@MNAH您是使用實體框架還是您自己的數據訪問層實現? – Candide

回答

0

DBContext有一個保存方法,你必須運行這個。

你運行了Save();方法 ?

+0

在創建方法中,我使用了這個save();此代碼是 [HttpPost] public ActionResult Create(ClientInfo ci) ClientInfo cil = new ClientInfo(); 嘗試 {// TODO:在此處添加插入邏輯 如果(ModelState.IsValid) { ci.Save(); return RedirectToAction(「Index」); } return View(cil); } catch { return View(); } } – MNAH

1

如果您在警告消息框意味着Undefined,這很簡單:

$.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); 
    } 
}); 

你的Ajax代碼顯示的data.msg內容。但是,當你的模型是有效的,它從數據庫中檢索模型,更新模型並返回新模型。如果成功,則不存在msg json屬性,因此data.msg未定義。

如果你希望它返回一個成功的消息時,您需要更改

return Json(c, JsonRequestBehavior.AllowGet); 

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

那麼你將不得不在data.msg消息,並在data.record您最近更新的記錄。

+0

老闆仍然有同樣的問題。未定義.. – MNAH

+0

然後張貼從服務器返回的Firebug輸出/ json字符串。 – Tseng

相關問題