我正在使用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>
Controller(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 。
答案 0 :(得分:0)
您必须在&#39;(单引号)中传递参数。
<input type="button" value="Save" class="btn btn-default" onclick="Update('@Model.ClientId')">