触发页面加载而不是Web方法

Jam*_*Hay 3 asp.net jquery webmethod

好的,所以到目前为止我的网站一直在正常工作,我不确定我改变了什么.我有一个jQuery AJAX调用,它将优惠券代码发送到服务器,并检索一个数字(这是折扣).

Webmethod不再被解雇,而是正在触发webmethod所在页面的Page_load.为什么?我能检查什么?我能做什么?

这是我点击按钮时的处理程序

$('div#code_apply_btn').click(function() {
    $(this).html('PLEASE WAIT');
    getpromocode();
});
Run Code Online (Sandbox Code Playgroud)

这是AJAX调用

function getpromocode(){
    var pcode = $('input#input_circuitcode').val();
    var hid = parseInt($('input#ss_id_h').val());
    $.ajax({
        type: "POST",
        url: "register.aspx/get_promocode",
        data: '{"promo":"' + pcode + '", "uid":' + hid + '}',
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (msg) {
            if (msg.d != -1) {
                applydiscount(msg.d);
                $('div#reg_circuit').show();
                $('div#circuit_promo').hide();
                $('div#reg_circuit').click();
            }
            else {
                $('input#input_circuitcode').val('');
                $('div#code_apply_btn').html('APPLY CODE');
            }
        },
        error: function (msg) {
            alert(msg);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

这是网络方法

[WebMethod]
public static int get_promocode(string promo, int uid)
{
    return DAC.GetPromoCode(promo);
}
Run Code Online (Sandbox Code Playgroud)

Web方法永远不会被调用,但是Page_load事件会触发并运行一切,然后它会收到500错误,因为它不应该被调用,并且没有它需要的所有数据.

编辑:

我使用Web方法的所有其他页面都可以正常工作.这只是这个页面.

另一个奇怪的行为:在我开始输入"register.aspx"时,在chrome中,调用Page_load.我的所有其他页面都很好,这不会发生.

Jam*_*Hay 6

我找到了问题的答案:

因为我有VS2008我只能使用.Net 3.5.然而我的服务器有.Net 4.0或2.0无论出于什么原因我无法选择3.5,因为我希望如此.因此,每次我移动项目时,我都必须更改web.config,因为默认的3.5配置充满了4.0不喜欢的大量内容.

所以我记得我已经将web.config清空到仍然在3.5中运行的准系统版本,这就是问题所在.我把它缩小到这些我从3.5本地运行的版本中排除的行

<httpModules>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, 
        System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
        PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
Run Code Online (Sandbox Code Playgroud)

我想脚本模块是将jQuery请求传递给Web方法而不是默认页面处理程序的东西.你去..但没有明显的错误或任何东西,它只是没有用.