使用ajax调用C#事件不起作用

时间:2016-11-30 05:26:34

标签: javascript c# jquery ajax webmethod

Button点击事件中,我使用了ajax方法,该方法调用在服务器端编写的webmethod。

每当我点击按钮时,我想调用该方法。但是使用我当前的代码,它没有达到服务器端编写的[WebMethod]

这是代码

Ajax代码

$(document).ready(function () {
        $('#btnAttachParty').click(function () {                
            $.ajax({
                url: 'FrmAgreementMaster.aspx/btnAttachParty_Click?id=' + $(this).attr('id')
            });
        });
    });

服务器端代码

[WebMethod]
public void btnAttachParty_Click(int id)
{
    if (strMode == "A")
    {
        if (HidAttachVal.Value == "")
        {
            ObjPriCon.Open();
            OracleCommand objpricmd = new OracleCommand("select xxcus.xxacl_pn_party_info_SEQ.nextval from dual", ObjPriCon);
            HidAttachVal.Value = Convert.ToString(objpricmd.ExecuteOracleScalar());
            ObjPriCon.Close();
        }
        ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "AttachmentCallParty(" + HidAttachVal.Value + ");", true);
    }
    else
    {
        if (HidAttachVal.Value == "")
        {
            ObjPriCon.Open();
            OracleCommand ObjPriCmd = new OracleCommand("select xxcus.xxacl_pn_party_info_SEQ.nextval from dual", ObjPriCon);
            HidAttachVal.Value = Convert.ToString(ObjPriCmd.ExecuteOracleScalar());
            ObjPriCon.Close();
        }
        ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "AttachmentCallParty(" + HidAttachVal.Value + ");", true);
    }
}

请告诉我为什么它不会影响网络方法部分。

2 个答案:

答案 0 :(得分:0)

ASPX 中的WebMethod必须static

[WebMethod]
public static void btnAttachParty_Click(int id)
{

}

答案 1 :(得分:0)

我认为问题在这里,

$(this).attr('id') // btnAttachParty

这将返回按钮的ID。

尝试value属性而不是id