Ajax PageMethods没有被调用

时间:2014-08-09 06:38:41

标签: javascript jquery asp.net ajax

我在asp.net中有以下javascript调用webmethd

 function passpd(elem) {
        if (confirm("You sure you want to delete") == true) {
            var exID = $(elem).closest('table').attr('id');
            exID = exID.replace("_fawad", '');
            alert(exID + "abc");
            PageMethods.DeleteInfo1("fawad", exID, "OnSuccessD", "OnErrorD");
            alert("2");
            var d1= $(elem).closest('table').attr('id');
            $("#" + d1).remove();
            return false;

        }
        else { alert("cancel deletion");return false;}
    }

我的网络方法如下,

        [WebMethod]
    public static string DeleteInfo1(string pname, string id) 
    {
        string constr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ProfileOne.mdf;Integrated Security=True;User Instance=True";
        SqlConnection con = new SqlConnection(constr);
        string sql = "delete from Experience where ProfileName=@p and ExperienceID=@e";
        SqlCommand cmd = new SqlCommand(sql, con);
        cmd.Parameters.Add("@p", SqlDbType.VarChar).Value = pname;
        cmd.Parameters.Add("@e", SqlDbType.Int).Value = Convert.ToInt32(id);
        con.Open();
        int ret = cmd.ExecuteNonQuery();
        if (ret > 0) { return "ok"; }
        else { return "nok"; }

    }

问题是webmthod没有被调用。 passpd()函数中的第一个警报被调用但是PageMthods.DeleteInfo1没有被执行。

问题是什么请帮忙

由于

2 个答案:

答案 0 :(得分:0)

您必须为该方法发帖。我不确定在帖子之后你做的是否取决于行动的结果但是如果你必须把它放在$.post //do something here所在的地方。

   function passpd(elem) {
            if (confirm("You sure you want to delete") == true) {
                var exID = $(elem).closest('table').attr('id');
                exID = exID.replace("_fawad", '');
                alert(exID + "abc"); 


                $.post('/PageMethods/DeleteInfo1/', { pname: 'fawad', id: exID }, function() {
                    //do something here?
                });


                alert("2");
                var d1= $(elem).closest('table').attr('id');
                $("#" + d1).remove();

                return false;
            }
            else { alert("cancel deletion");return false;}
        }

答案 1 :(得分:0)

我找到了解决方案。

我正在使用url重写。当我浏览我的代码时,就来找我了