jQuery Get()到WebMethod无法正常工作

时间:2012-07-16 15:30:39

标签: c# jquery webmethod

我正在尝试调用jQuery函数$.get()来调用WebMethod,但它只是在后面的代码中遇到Page_Load事件。我可以看到请求在firebug中发送到/admin/manage-users.aspx/deleteUser?u=user1,但它从未触及WebMethod。

jquery的

$('#delete').each(function () {
    $(this).click(function () {
        var userName = $(this).closest('tr').find('span.userName').text();
        $.get('/admin/manage-users.aspx/deleteUser', { u: userName });
    });
});

aspx.cs

[WebMethod]
public void deleteUser() {
    string userName = Request.QueryString["u"];
    if(!string.IsNullOrEmpty(userName)) {
        if(Membership.DeleteUser(userName))
            Response.Redirect(Request.Url.ToString());
    }
}

我对下面的bugz表示赞赏,因为他指出了我正确的方向。

  

为了让你的[WebMethod]工作,你在aspx中的方法必须是静态的

1 个答案:

答案 0 :(得分:1)

以下是更多信息的链接

More Information

     $.ajax({
                    type: "POST",
                    url: "'/admin/manage-users.aspx/deleteUser'",
                    data: "{'userName ' : '" + userName + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(data) {
        //do something on success

                    },
                    error: function(ex) {
       //do something on failure

                    }
                });    

如果你要返回数据或变量成功,请确保在使用jquery / ajax时出于某种原因使用data.d,microsoft想要变量末尾的.d。这花了我时间弄清楚。

尝试这个我猜你调试deleteUser方法永远不会被调用。

var jqxhr = $.get("admin/manage-users.aspx/deleteUser",  { userName: userName }  function() {
    alert("success");
  })
  .success(function() { alert("second success"); })
  .error(function() { alert("error"); })
  .complete(function() { alert("complete"); });