刚开始的时候使用asp的updatepanel控件实现局部刷新,而且在本地运行正确,但是部署到服务器上就变成整个页面全部刷新了。服务器用的是Windows server2000,本地机子上用的是win7,没有找到解决办法,最后改用ajax实现,本地和服务器都完美实现局部刷新效果。

  前台代码:

$(".textBox").change(function () {
                var companyName;
                companyName = $(".textBox_company").val();
                $.ajax({
                    type: "Post",
                    contentType: "application/json;charset=utf-8",
                    url: "Receiving.aspx/getCompanyEmail",
                    data: "{'companyName':'" + companyName + "'}",
                    dataType: 'json',
                    success: function (result) {
                        $(".txt_ReceiverEmail").val(result.d);
                        $(".txt_Email").val(result.d);
                    },
                    error: function (err) {
                    }
                })
            })

  注意:

  1.url中getCompanyEmial是后台的具体需要访问的方法。

  2.传输参数的格式是:'data':'data'。形参和实参值都需要用引号包起来,尤其是实参是变量的时候如代码中所示,要注意加上引号。

  3.形参名字需要和后台的形参名的名字一致,个数一致,前后台都为string类型。

 

  后台代码:

[System.Web.Services.WebMethod]
    public static string getCompanyEmail(string companyName)
    {
        string result = "";
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        string jsonResult = serializer.Serialize(result);
     
     //return jsonResult;//包装成json返回
return result; }

  注意:

   1.一定要在方法前加上[System.Web.Services.WebMethod]声明,不然会执行不到后台代码。

   2.返回json只需要两句代码:

    JavaScriptSerializer serializer = new JavaScriptSerializer();
       string jsonResult = serializer.Serialize(result);

   3.不包装成json格式仍然可以正确返回,把结果包装成json之后,会把整个结果包装成字符串返回,如result = null,如果包装成json则返回的变成字符串:"null"。