Asp.net 使用POST方法的AJAX回调

Asp.net 使用POST方法的AJAX回调,asp.net,jquery,Asp.net,Jquery,我需要一些帮助。我正在使用jQuery进行ajax回调: function TestingCallback(controlId) { if (controlId == 'drpControl') { var options = { type: "POST", url: "Main.aspx", data: { drpCont

我需要一些帮助。我正在使用jQuery进行ajax回调:

function TestingCallback(controlId) {        

        if (controlId == 'drpControl') {
            var options =           {
                type: "POST",
                url: "Main.aspx",
                data: { drpControl: $(".drpControl").val() },               
                //contentType: "application/json; charset=utf-8",
                //cache: false,
                success: function (data) {
                },
                complete: function (jqXHR, status) {
                    formData = $("#form1").serialize();
                    window.location = "Main.aspx?" + formData;
                    ShowLoadingBar();
                    return false;
                }
            };
            var resp = $.ajax(options);
        }
}
后端我得到的数据如下:

Request.Form[“drpControl”]
,它运行良好

但是,只要我将这一行添加到回调选项中:
contentType:“application/json;charset=utf-8”,
,我就会得到
Request.Form[“drpControl”]
的null值

请协助解决这个问题

提前谢谢

请允许我补充一点,我正试图引起回发,但保留所有控制值,因此这一行:

    formData = $("#form1").serialize(); 
   window.location = "Main.aspx?" + formData;

但在第二次回发(更改drpControl)字段值被清除后,我假设这与IE无法满足长时间的查询字符串有关,我已经在Chrome中对其进行了测试,它工作正常,但不是IE,我需要它来为IE 8工作。有什么建议吗?

在内容类型中,只需添加这个

contentType: "application/json" 
指定编码对于JSON来说有些冗余,因为JSON的默认编码是UTF-8。因此,在本例中,接收服务器显然很高兴知道它正在处理JSON,并假设默认情况下编码为UTF-8,这就是它使用或不使用头的原因

contentType(默认值:“application/x-www-form-urlencoded;charset=UTF-8”)- 向服务器发送数据时,请使用此内容类型。默认值为“application/x-www-form-urlencoded;charset=UTF-8”,这在大多数情况下都适用。如果显式地将内容类型传递给$.ajax(),则它将始终发送到服务器(即使没有发送数据)。如果没有指定字符集,数据将使用服务器的默认字符集传输到服务器;您必须在服务器端对其进行适当解码


注意:当然可以,但要像这样传递数据

data: "{'drpControl' : " + $(".drpControl").val()+ "}",

是的,我有,但它仍然收到请求null@johnnie-还要看看这篇文章:行:数据:“{'drpControl':”+$(“.drpControl”).val()+“}”,不起作用either@johnnie-查看我提供的帮助您理解的文章链接