簡體   English   中英

如何在ASp MVC中使用Sweet Alert確認用戶數據的編輯

[英]How to confirm the edit of user data using sweet Alert in ASp MVC

我正在通過SQL Server使用存儲過程開發ASP MVC Web應用程序。

我試圖建立確認警報(Sweet Alert),以確認已登錄用戶的數據更新。

未經確認,編輯的代碼可以完美工作。 但是一旦添加了確認警報,我就面臨通過JavaScript函數將用戶(客戶端)參數從視圖傳遞到控制器的問題。

我試圖將孔模型作為參數傳遞給onClick(),但出現JavaScript錯誤:

未捕獲的ReferenceError:在HTMLInputElement.onclick上未定義傳遞

這是我的視圖代碼(“編輯”頁面)的一部分:

     <input type="button" value="Save" class="btn btn-default" onclick="Update(@Model.ClientId)">

<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
    <script type="text/javascript">
        function Update(clientId) {
            swal({
                title: "Are you sure?",
                text: "Once modified, you will not be able to recover your profile!",
                icon: "warning",
                buttons: true,
                dangerMode: true,
            })
        .then((willDelete) => {
            if (willDelete) {
                $.ajax({
                    type: "POST",
                    data: {
                        id: clientId
                    },
                    url: "/Client/Edit",
                    dataType: "json",
                    success: function (response) {
                        swal("Poof! Your profile has been modified!", {
                            icon: "success",
                        }).then(function () {
                            window.location.href = "/Home/Index"
                        });

                    },
                    failure: function (response) {
                        alert(response.responseText);
                    },
                    error: function (response) {
                        alert(response.responseText);
                    }
                });

            }
            else {
                swal("Your profil is safe!");
            }
        });
        }
    </script>

控制器(ClientController):

 [HttpPost]
    public JsonResult Edit(int id, Client cmodel)
    {
        try
        {

                ClientManagement cdb = new ClientManagement();
            if (cdb.UpdateDetails(cmodel))
            {
                TempData["Message"] = "Client Details Edited Successfully";
            }

            return Json("edited");
        }
        catch
        {
           return Json("Error");
        }
    }

ClientManagement類:

  public bool UpdateDetails(Client cmodel)
    {
        try
        {
            connection();
            SqlCommand cmd = new SqlCommand("UpdateClientsInfo", con);
            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@CltId", cmodel.ClientId);
            cmd.Parameters.AddWithValue("@FirstName", cmodel.FirstName);
            cmd.Parameters.AddWithValue("@LastName", cmodel.LastName);
            cmd.Parameters.AddWithValue("@Email", cmodel.Email);
            cmd.Parameters.AddWithValue("@Phone", cmodel.Phone);
            cmd.Parameters.AddWithValue("@Address", cmodel.Address);
            cmd.Parameters.AddWithValue("@Password", cmodel.Password);

            con.Open();
            int i = cmd.ExecuteNonQuery();
            con.Close();

            if (i >= 1)
                return true;
            else
                return false;
        }

        catch (SqlException sqlexc)
        {
            foreach (SqlError error in sqlexc.Errors)
            {
                string msg = string.Format("{0}: {1}", error.Number, error.Message);
            }
            return false;
        }
    }

調試時,客戶端的所有值(ClientId,LastName ...)均為Null

您必須在'(單引號)中傳遞參數。

<input type="button" value="Save" class="btn btn-default" onclick="Update('@Model.ClientId')">

暫無
暫無

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

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