ASP.NET WebMethod 从字符串参数中删除前导 0

ASP.NET WebMethod Trims Leading 0 From String Parameter

我有一个 WebMethod 如下:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
public string CityState(string zip)
{
    if (zip.Length < 5) return string.Empty;
    //truncated for readability

     var data = "Foo";
     return data;
}

在 ascx 控件中,我有以下内容:

<script type="text/javascript">
        var data = { Zip: "09003"  };
        $.ajax({
            type: "GET",
            url: "/postalcodevalidator.asmx/CityState",
            data: data,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (result) {
                console.log("Woohoo");
            },
            error: function () {
                console.log("Boohoo.")
            }
        });
</script>

在请求期间,前导 0 从字符串中删除。我怎样才能防止这种情况发生?

这 "worked",意思是,这停止了将我的字符串转换为 int 又转换回字符串的任何操作,但我不知道转换发生的原因或位置。

无论如何,我的 "solution" 可以说是将我的字符串包装在一个字符串中。

var data = { Zip: '"09003"'  };

注意双刻度周围的单刻度。通过这样做,我想我欺骗了试图进行转换的任何人。