javascript - 如何从 Jquery ajax 调用中调用 HttpPost 类型的 Controller 方法

标签 javascript c# jquery ajax asp.net-mvc

我正在尝试从 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/

相关文章:

javascript - 纯 javascript 相当于 jquery $ ("#large_box2_link").click();

javascript - 当字段具有 2 个或更多嵌套级别(如 myObj.one.two.third.field 中)时,Js 或 ES6 通过路径字符串获取对象字段

javascript - 授予 Chrome 扩展程序访问 iframe 内容的权限

javascript - 使用jquery设置span的值

javascript - 如何在多个组件中共享 redux store

javascript - 如何使用api修改bigcommerce前端(在应用程序中添加js代码)

c# - OLEDB 读取 Excel 文件不适用于 IIS asp.net C#

C# Excel Interop 一次设置多个单元格值

c# - 通用 Windows 10 自适应布局问题

javascript - 将 float 元素格式化为同一级别