如何在 JavaScript 中创建列表参数来调用 WCF-Webservice

How to create a list-parameter in JavaScript to call a WCF-Webservice

本文关键字:参数 调用 WCF-Webservice 列表 创建 JavaScript      更新时间:2023-09-26

我有一个WCF-Webservice,我想从JavaScript-Page调用它。作为参数,WCF 服务需要一个字符串列表,这些字符串应在 JavaScript 函数中动态创建。此参数必须是什么样子的?

Web 服务的界面如下所示:

[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?

如果要

发送超过 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);
    ...
}