如何在JavaScript中创建list-parameter以调用WCF-Webservice

时间:2016-01-20 14:39:14

标签: javascript json list wcf

我有一个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 +
            "&paramList=" + paramList, {
                params: {
                    callback: 'JSON_CALLBACK',
                    format: 'json'
                    }
                })
                .success(function (data) {...})
                .error(function (data) {...});

我必须在参数 paramList 中写入什么以及如何写入,以便在WCF服务中将其作为IList接受?

1 个答案:

答案 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);
    ...
}