Asp.net mvc Ajax json post不起作用

Asp.net mvc Ajax json post不起作用,asp.net-mvc,jquery,Asp.net Mvc,Jquery,我需要将json数据传递给控制器。因此,我创建了一个ajax帖子。但它并没有调用action方法 function DeleteRow(postData) { $.ajax({ url: '@Url.Action("DeleteGridRow","Project")', type: 'POST', dataType: "json", contentType: "application/json; charset=utf-8", async: false,

我需要将json数据传递给控制器。因此,我创建了一个ajax帖子。但它并没有调用action方法

function DeleteRow(postData) {
$.ajax({
    url: '@Url.Action("DeleteGridRow","Project")',
    type: 'POST',
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    async: false,
    data: JSON.stringify(postData),
    success: function (data) {

    }
});
}

我的行动方法

 [HttpPost]
    public JsonResult DeleteGridRow(string postData)
    {
        return Json(null);
    }

请帮助

如果您已将javascript文件与cshtml或vbhtml页面分离,则此操作将不起作用。您的URL将被错误地解释。您应该传递要提交到函数DeleteRow的URL。大概是这样的:

$("#myForm").submit(function() {
    var url = $(this).attr("action");
    var data = Use your method to collect data or $(this).serialize();

    DeleteRow(url, data);
});

function DeleteRow(url, postData) {  
    $.ajax({  
        url: url,  
        type: 'POST',  
        dataType: "json",  
        contentType: "application/json; charset=utf-8",  
        async: false,  
        data: JSON.stringify(postData),  
        success: function (data) {  

    }  
});

类似的功能应该可以使用。

您是否运行了fiddler或类似工具来确保您发送的是帖子而不是电话?Mark,谢谢您的回复。我使用了firebug,在帖子中我可以看到我发送的值。但答案是空的。总的来说,firebug中显示的错误是“500:内部服务器错误”1。用于调试2。adderror函数error:function(error){}3。测试您的url以获得结果。您可以验证url是否确实存在,或者在调用该方法时对您的解决方案抛出调试器以确保其确实被调用。谢谢brian_wang&mark。你的投入真的很有价值。实际上,我的url.action是错误的。您应该访问以前的问题,并将那些对您有帮助的答案标记为回答,否则您可能无法获得对您的问题的响应。:-)当做