簡體   English   中英

為什么我的數據沒有更新?

[英]Why my data is not updating?

我正在嘗試更新ClientInfo表。 但是它沒有更新,並且顯示為Undefined。 我在控制器中使用了以下代碼來更新數據庫表數據。 我哪里找不到我的問題? 專家請幫我..

 [HttpPost]
        public JsonResult Update(ClientInfo clnt, int id)
        {
            if (ModelState.IsValid)
            {
                ClientInfo c = db.Query<ClientInfo>("Select * from ClientInfo Where CId=@0", 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;
        }

我的ajax調用從視圖通過cid值搜索數據。

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

如果在警報消息框中表示“ 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

DBContext有一個save方法,您必須運行此方法。

您是否運行過Save(); 方法 ?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM