Не удается обновить, данные в Dataatable нажав кнопку Сохранить - PullRequest
0 голосов
/ 13 марта 2020

enter image description here

enter image description here

enter image description here

script


  function startEdit(obj) {            
            $(".inline-view").show();
            $(".inline-edit").hide();
            $(obj).closest('tr').find("td .inline-view").hide();
            $(obj).closest('tr').find("td .inline-edit").show();
            $("#customerGrid_wrapper").css("overflow-x", "auto");
        }
 $(function () {
            $(".savebutton").click(function () {
               // alert("Im Here");
                $(".inline-edit").hide();
                $(".inline-view").show();


                var tr = $(this).closest('tr').find("td .inline_edit");
                var FirstName = tr.find("item_FirstName").val();
                var MiddleName = tr.find("item_MiddleName").val();
                var LastName = tr.find("item_LastName").val();
                var Gender = tr.find("item_Gender").val();
                var CompanyName = tr.find("item.CompanyName").val();
                var Address = tr.find("item_Address").val();
                var City = tr.find("item_City").val();
                var Country = tr.find("item_Country").val();
                var Email = tr.find("item_Email").val();
                var Phone = tr.find("item_Phone").val();
                var CustomerId = $(this).data("customerid");

                $(this).closest('tr').find("td .first_name").text("FirstName");
                $(this).closest('tr').find("td .middle_name").text("MiddleName");
                $(this).closest('tr').find("td .last_name").text("LastName");
                $(this).closest('tr').find("td .gender").text("Gender");
                $(this).closest('tr').find("td .company_name").text("CompanyName");
                $(this).closest('tr').find("td .address").text("Address");
                $(this).closest('tr').find("td .city").text("City");
                $(this).closest('tr').find("td .country").text("Country");
                $(this).closest('tr').find("td .email").text("Email");
                $(this).closest('tr').find("td .phone").text("Phone");

                var CustomerModel = {
                    CustomerId: CustomerId,
                    FirstName: FirstName,
                    MiddleName: MiddleName,
                    LastName: LastName,
                    Gender: Gender,
                    CompanyName: CompanyName,
                    Address: Address,
                    City: City,
                    Country: Country,
                    Email: Email,
                    Phone: Phone
                };

                $.ajax({                     
                    url: '/Customers/Edit/',
                    dataType: "json",
                    data: JSON.stringify(CustomerModel),
                    type: 'POST',
                    contentType: 'application/json; charset=utf-8',
                    success: function (data, status) {
                        console.log('Updating data is successful');
                    },
                    error: function (e,s,t) {
                        console.log(t.getMessage);
                    }
                });
            });
        });

Вид

<table id="customerGrid" class="table">
    <thead>
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.CustomerId)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.FirstName)
            </th>


<tbody>
    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.HiddenFor(modelItem => item.CustomerId)
            </td>
            <td>
                <div class="inline-view first_name">
                    @Html.DisplayFor(modelItem => item.FirstName)
                </div>
                <div class="inline-edit" style='display:none;'>
                    @Html.EditorFor(modelItem => item.FirstName)
                </div>
            </td>
}
<td>
    <div class="inline-view">
        <button type="button" class="editBtn" onclick='startEdit(this);'>Edit</button>
    </div>
    <div class="inline-edit" style="display:none;">
         <input class="savebutton"  id="saveBtn" type="button" value="Save" data-customerid="@item.CustomerId" />
         <button type="button" id="cancelBtn" onclick='cancelEdit(); return false;'>Cancel</button>
   </div>
</td>

Контроллер

    [HttpPost]
        public ActionResult Edit(Customers model)
        {
             try
            {
                CustomerActions customer = new CustomerActions();
                if(ModelState.IsValid)
                {
                   bool isSuccess =  customer.UpdateCustomer(model);
                    if(isSuccess)
                    {
                        ViewBag.Message = "Updated successfully.";
                    }
                    else
                    {
                        ViewBag.Message = "Not updated successfully.";
                    }
                    customer.FetchCutomers();
                }
                return Json(new { customer }, JsonRequestBehavior.AllowGet);
            }
            catch
            {
                return View();
            } 

        }

Я использую данные клиента для выполнения действий редактирования / удаления. Когда я пытаюсь обновить данные, переменная привязывается к таблице, и она не может go изменить метод в контроллере. Я прикрепил изображения, чтобы понять, с чем я борюсь. Может кто-нибудь объяснить, почему это происходит, и как это исправить, пожалуйста? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...