我正在努力通过Ajax将数据传递给控制器​​

问题描述:

试图通过Ajax敲击DeleteJobQuote控制器,但没有运气。如果有人有任何想法,请指导我。代码看起来不错,但无法做到。我正在编写此代码以从数据库中删除特定的记录。我正在努力通过Ajax将数据传递给控制器​​

控制器

[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和敲除此

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 !!"); 
      } 
     } 
    }); 
}; 
+0

什么是你的问题是什么呢?我不能看到任何行执行删除操作像'db.JobQuote.Remove(delJob);'在你的代码。 –

+0

'data':ko.toJSON(this)''是什么?什么是错误? – Max

+0

@ S.Akbari,从阿贾克斯,我无法击中控制器来查看结果。从这一行$ .ajax({,它不会进入内部 – Rajesh

更改代码 “数据:ko.toJSON(这)” 到“数据: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 !!"); 
        } 
       } 
      }); 
+0

如果JSON。 stringify不起作用。尝试直接使用json数据。 data:'{“jobQuoteid”:1}' – SMA

+0

非常感谢。我的问题解决了。 – Rajesh

+0

您最欢迎:) – SMA