我使用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)
{...}
答案 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
,因此会被正确地反序列化为字符串。