[英]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.