我正在尝试从 jquery 脚本调用 MVC 中名为 UpudateFingerprintStatus
的 Controller 函数。这是一个 PUT
调用,因为我正在更新所需对象的状态。当我尝试调用此方法时,收到 404 错误
。
这是我的 JS 代码:
function updateStatus(statusId, fingerprintId, isDeleted, userId) {
var confirm = window.confirm("Are you sure you wish to change the Fingerprint Status?");
if (confirm) {
$.ajax({
type: "POST",
url: "/Tools/FingerprintTool/UpdateFingerprintStatus",
dataType: "json",
processData: false,
contentType: "application/json; charset=utf-8",
data: JSON.stringify({
userId: userId,
statusId: parseInt(statusId),
fingerprintId: fingerprintId,
isDeleted: isDeleted
}),
sucess: function(resp) {
alert("success");
},
error: function(resp) {
alert("Failure" + resp.description);
}
});
}
}
这是我的 Controller 方法:
[HttpPut]
public JsonResult UpdateFingerprintStatus(int userId, int statusId, int fingerprintId, int isDeleted)
{
var response = _driver.UpdateFingerprintGrantById(userId, fingerprintId, isDeleted, statusId);
return Json(response.Note);
}
任何帮助将不胜感激!
最佳答案
当我们发送 post 、 put 请求时,它会在正文中发送复杂的数据类型,以便绑定(bind)该复杂数据,您需要创建一个类,其中所有属性都应与您从前端发送的名称相同。
public class FingerprintStatus{
public string UserId { get; set; }
public int StatusId { get; set; }
public int FingerprintId { get; set; }
public bool IsDeleted { get; set; }
}
[HttpPut]
public JsonResult UpdateFingerprintStatus(FingerprintStatus model)
{
var response = _driver.UpdateFingerprintGrantById(model.UserId, model.FingerprintId, model.IsDeleted, model.StatusId);
return Json(response.Note);
}
关于javascript - 如何从 Jquery ajax 调用中调用 HttpPost 类型的 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38175680/