[asp.net-mvc]Ajax 调用并不会调用控制器

发布时间: 2016/10/9 0:16:28
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我使用以下代码调用控制器中的操作与获取内部服务器错误 500 在控制台中的,路径看很好所以是什么的问题。entryId 有价值 1...

这里是 AJAX 调用

$.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:

你没有在构建您 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 })
});
官方微信
官方QQ群
31647020