0

这是我的 jQuery ajax 函数

//delete individual row
jQuery('.stdtable img.delete').click(function(){
    var c = confirm('Continue delete?');
    if (c) {
        jQuery.ajax({
            url: 'market/delete/14',
            type: 'POST',
            success: function () {
                alert('success');
            },
            error: function () {
                alert("error");
            }
        });
    };
    return false;
});

这是我的控制器

[HttpPost]
public ActionResult Delete(int id)
{
    Using<MarketService>().Delete(int);
    return View();
}

该代码正在调用我的控制器,并且一切正常。但是 jQuery 函数总是返回说“错误”。

怎么了?

4

2 回答 2

1

你的控制器中的代码甚至编译了吗?您应该使用id来删除,而不是使用 int类型

[HttpPost]
public ActionResult Delete(int id)
{
   Using<MarketService>().Delete(id);
   return View();
}

还要在没有 JavaScript 的情况下测试您的操作,请使用工具Fiddler

于 2013-01-03T14:56:19.970 回答
1

jQuery

//delete individual row
jQuery('.stdtable img.delete').click(function(){
    var c = confirm('Continue delete?');
    if (c) {
        jQuery.ajax({
            url: 'Market/Delete/14', // '@Url.Action("Delete","Market")' is better. Also you should use data attribute for ajax. like this - data : { id : 14 }
            type: 'POST',
            success: function (data) {
                alert(data.Message);
                alert(data.Success);
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
                alert(thrownError);
            }
        });
    };
    return false;
});

在您的 ajax 网址中,您使用了市场/删除,在您的控制器名称中“删除”以大写字母开头。它们之间区分大小写。

控制器

[HttpPost]
public ActionResult Delete(int id)
{
   var result=new { Success="True", Message="Success"};
   Using<MarketService>().Delete(id);
   return Json(result, JsonRequestBehavior.AllowGet);
}
于 2013-01-03T15:12:33.337 回答