【发布时间】:2014-02-27 20:08:03
【问题描述】:
当我使用参数调用 Web 服务方法时,出现此错误:“Web 服务调用无效,参数缺少值”。
我正在使用不带参数的 Web 服务方法进行测试,该方法返回相同类型的对象,并且效果很好。
这是我的网络服务方法:
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public ResponseStatistic_3 Statistic_3(string klant)
{
Statistic_3[] items = Helper.Helper_Statistic_3(klant).ToArray();
ResponseStatistic_3 response = new ResponseStatistic_3(items);
return response;
}
这是我的 javascript 代码,我在 kla 变量中检索到好的值:
function getStatistic3() {
var response;
var allstat3 = [];
var kla = $('#Select1').val();
var dataJSon = { klant: kla }
if (kla) {
$.ajax({
type: 'GET',
url: 'http://localhost:52251/Service1.asmx/Statistic_3',
data: dataJSon,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
processData: false,
success: function (msg) {
response = msg.d;
for (var i = 0; i < response.Items.length; i++) {
var j = 0;
allstat3[i] = [response.Items[i].Interventie, response.Items[i].Sum[j], response.Items[i].Sum[++j], response.Items[i].Sum[++j], response.Items[i].Sum[++j], response.Items[i].Sum[++j]];
}
fillDataTable(allstat3);
},
error: function (e) {
alert("error loading statistic 3");
}
});
} else {
alert("statistic 3 null");
}
}
我也在用 JSON.stringify({ klant: kla }) 进行测试,我也遇到了同样的错误。
我查看了几个论坛,但都是徒劳的。 怎么了?
【问题讨论】:
-
仅供参考,您使用的不是 WCF,而是 ASMX。 ASMX 是一项遗留技术,不应用于新开发。 WCF 或 ASP.NET Web API 应该用于 Web 服务客户端和服务器的所有新开发。一个提示:微软已经在 MSDN 上停用了ASMX Forum。
-
我知道,我是从 wcf 开始的,但是我遇到了一个几天都无法解决的问题。使用 asmx 我可以很快解决这个问题。谢谢你的欢呼...
-
如果您只是将其作为字符串 (
data: "klant='test'") 发送会怎样?它通过了吗? -
@Jayce:你应该在Stack Overflow 上询问你的 WCF 问题。我们的回答比在新开发中使用遗留技术要好得多,然后被它们困住。
-
@Jayce。伟大的。看看@Rob Angelier 的回答。认为这看起来不错。虽然你可能需要做一些更像
data: "klant='" + $('#Select1').val() + "'"
标签: c# asp.net web-services asmx