我的jQuery ajax函数总是返回错误

时间:2013-01-03 14:53:02

标签: asp.net-mvc jquery

这是我的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函数总是返回“错误”。

有什么问题?

2 个答案:

答案 0 :(得分:1)

控制器中的代码是否已编译?您应该使用 id 删除 not int ,这是

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

另外,为了在没有JavaScript的情况下测试您的操作,请使用工具Fiddler

答案 1 :(得分: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);
}