参数在Ajax请求中丢失了零

时间:2016-11-22 13:55:11

标签: asp.net json ajax get webmethod

我使用WebMethod发送Ajax的参数并接收um对象。但是,zeros中的参数丢失WebMethod,我发送“00001234”,后端参数中的参数为“1234”

Ajax代码:

 var content = {valueS: "00001234" };
 $.ajax({
            type: "GET",
            dataType: 'json',
            data: content,
            async: false,
            url: "myPage.aspx/GetData",
            contentType: "application/json; charset=utf-8",
            success: function (data) { OnSucess(data); },
            error:   function(data) { OnError(data); }
        });

Webmethod代码:

    [WebMethod]
    [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json, XmlSerializeString = false)]
    public static string GetData(string valueS)
    {...}

1 个答案:

答案 0 :(得分:1)

尝试

 var content = {valueS: "'00001234'" };
 $.ajax({
            type: "GET",
            dataType: 'json',
            data: content,
            async: false,
            url: "myPage.aspx/GetData",
            contentType: "application/json; charset=utf-8",
            success: function (data) { OnSucess(data); },
            error:   function(data) { OnError(data); }
        });

似乎valueS首先被反序列化为一个数字,在这种情况下它会松散其前导零。 您的代码生成的请求如下myPage.aspx/GetData?valueS=00001234

虽然我的代码生成的代码看起来像myPage.aspx/GetData?valueS=%2700001234%27,因此会被正确地反序列化为字符串。