我已经找到了解决方法,但不确定导致这种情况的原因,所以我可以在没有“解决方法”的情况下正确修复它
我有一个网络服务方法..
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
[WebMethod(EnableSession = true)]
public string Validate(string value)
{
}
我有一个调用此方法的javascript方法..
function CheckABAValidation() {
$.ajax({
type: "GET",
url: '../Service/MyWebService.asmx/Validate',
data: { value: $('#tbValue').val() },
contentType: "application/json",
success: function (data) {
}
});
}
问题是,当我在021214156
中输入tbValue
时,当我单步执行WebService ..值为21214156
时,如果我执行alert($('#tbValue').val());
它确实显示021214156
,因此看来Web服务在到达Web服务之前会看到一个数字。
没有成功的尝试:
data: { value: new String($('#tbValue').val()) },
data: { value: $('#tbValue').val().toString() },
我做的修正正在改变:
data: { value: $('#tbValue').val() },
致:
data: { value: ' " ' + $('#tbValue').val() + ' " ' },
有没有更好的方法让Web服务知道这是一个字符串而不是数字,即使字符串是参数?
答案 0 :(得分:1)
没关系,想通了......
是
data: JSON.stringify({ value: $('#tbValue').val() }),
这是由于我的网络服务已经
ResponseFormat = ResponseFormat.Json