我有一个WCF-Webservice,我想从JavaScript-Page调用。作为参数,WCF-Service需要一个字符串列表,这些字符串应在JavaScript函数中动态创建。该参数如何看起来像?
Webservice的界面如下所示:
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
Boolean UpdateShow(string showUri, IList<string> paramList);
来自JavaScript前端的调用如下:
$http.jsonp("http://myWebServer.de/Service.svc/UpdateShow?showUri=" + theShowUri +
"¶mList=" + paramList, {
params: {
callback: 'JSON_CALLBACK',
format: 'json'
}
})
.success(function (data) {...})
.error(function (data) {...});
我必须在参数 paramList 中写入什么以及如何写入,以便在WCF服务中将其作为IList接受?
答案 0 :(得分:0)
如果要发送超过255个字符的数据,则需要将其发送到您的服务方法:
[OperationContract]
[WebInvoke(
BodyStyle = WebMessageBodyStyle.Bare,
Method = "POST",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Xml,
UriTemplate = "/updateShow?smallParam1PassedViaQueryString={smallParam1PassedViaQueryString}&smallParam2PassedViaQueryString={smallParam2PassedViaQueryString}")]
System.ServiceModel.Channels.Message UpdateShow(Stream stream, string smallParam1PassedViaQueryString, int string smallParam2PassedViaQueryString);
您在POST请求正文中发送数据(并且可能在url查询字符串中使用一些小参数),然后在WCF服务方法中解析正文:
var inputStream = stream;
var inputStream = stream;
using (var streamReader = new StreamReader(inputStream))
{
json = streamReader.ReadToEnd();
JObject.Parse(json);
...
}