【问题标题】:I am struggling to pass data to controller through Ajax我正在努力通过 Ajax 将数据传递给控制器
【发布时间】:2017-11-20 17:04:41
【问题描述】:

试图通过 Ajax 访问 DeleteJobQuote 控制器,但没有成功。如果有人对此有任何想法,请指导我。代码看起来不错,但不能这样做。我正在编写此代码以从数据库中删除特定记录。

控制器

[HttpPost]
public ActionResult DeleteJobQuote(int jobQuoteid)
{
    using (var db = new KeysEntities())
    {
        var delJob = db.JobQuote.FirstOrDefault(x => x.Id == jobQuoteid);
        if (delJob != null)
        {
            delJob.Status = "Delete";
            db.SaveChanges();
            return Json(new { success = true, Message = "JobQuote SuccessFully Deleted!" });
        }
        else
        {
            return Json(new { success = false, Message = "Delete UnSuccessFul " });
        }
    }
}

以及用于此的 JavaScript 和 Knockout 代码

self.deleteJobQuote = function (jobQuote) {
    debugger;
    $.ajax({
        url: '/Companies/Manage/DeleteJobQuote',
        type: 'POST',
        dataType: 'json',
        data: ko.toJSON(this),
        contentType: 'application/json',
        success: function (result) {
            if (result.success) {
                $('#jobQuoteDeleteModal').modal('show');
            }
            else {
                alert("You can not delete this record !!");
            }
        }
    });
};

【问题讨论】:

  • 您的问题到底是什么?我在您的代码中看不到任何执行删除操作的行,例如 db.JobQuote.Remove(delJob );
  • 在线data: ko.toJSON(this) 上的this 是什么?什么错误?
  • @S.Akbari,来自 Ajax,我无法点击控制器来查看结果。从这一行 $.ajax({, 它不进去了。
  • 你试过用JSON.Stringify吗?像这样data: JSON.Stringify({jobQuoteid: jobQuoteidValue})
  • @Max,我已经从 data: { id: data.Id() } 改成 ko.toJSON(this) 来看看效果,但到目前为止还没有运气。

标签: javascript c# knockout.js asp.net-web-api2


【解决方案1】:

将“data : ko.toJSON(this)”更改为“data: JSON.stringify({ jobQuoteid: 1 })”。我已将 jobQuoteid 值硬编码为 1。从 jobQoute 对象中获取它。

完整代码:

$.ajax({
                url: '/Companies/Manage/DeleteJobQuote',
                type: 'POST',
                dataType: 'json',
                data: JSON.stringify({ jobQuoteid: 1 }),
                contentType: 'application/json',
                success: function (result) {
                    if (result.success) {
                        $('#jobQuoteDeleteModal').modal('show');
                    }
                    else {
                        alert("You can not delete this record !!");
                    }
                }
            });

【讨论】:

  • 如果 JSON.stringify 不起作用。尝试直接使用json数据。数据:'{“jobQuoteid”:1}'
猜你喜欢
  • 2019-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多