Ajax调用不会调用控制器

时间:2014-07-27 11:34:57

标签: javascript asp.net ajax asp.net-mvc asp.net-mvc-4

我使用以下代码调用控制器操作 我在控制台中得到interanl服务器错误500,路径看起来很好,所以可能是什么问题。 entryId的值为1 ...

这是AJAX CALL

$.ajax({
                    type:'POST',
                    url: "../../user/DeleteConfirmed",
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    data: 'id=' + entryId
                });

这是控制器动作代码

[HttpPost, ActionName("DeleteConfirmed")]
        public JsonResult DeleteConfirmed(int id)
        {

..

错误是

POST https://127.0.0.1/user/DeleteConfirmed 500 (Internal Server Error) jquery-2.1.1.js:8623
jQuery.ajaxTransport.send jquery-2.1.1.js:8623
jQuery.extend.ajax jquery-2.1.1.js:8152
(anonymous function) Index:519
jQuery.event.dispatch jquery-2.1.1.js:4409
jQuery.event.add.elemData.handle

1 个答案:

答案 0 :(得分:0)

您没有正确构建data属性:您发送的字符串如id=3,无法解析为JSON,因此您收到服务器错误。

所以你只需要修复你的数据:你需要使用控件的参数名称键来控制你的操作,你需要使用JSON.stringify方法将它变成一个合适的JSON字符串:

$.ajax({
    type:'POST',
    url: "../../user/DeleteConfirmed",
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({ id: entryId })
});