Javascript数组作为WCF Web服务参数
我需要将一个简单的Javascript数组传递给我的wcf ajax webservice:
var array = new Array(); array["ParamA"] = "xyz"; array["12344"] = "9"; myNamespace.DoSomething(array);
这是我的WCF方法:
[OperationContract] [WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] public void DoSomething(object values)
当使用我的值从javascript调用“values”时,它是一个空数组。 将一个简单的KeyValuePairs列表传递给我的webservice的最佳方法是什么?
我自己找到了解决方案:
[OperationContract] [WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] public void DoSomething(Dictionary values)
必须在这样的javascript中调用:
var params = [{“Key”:“A”,“Value”:5},{“Key”:“B”,“Value”:“Test}]
$.ajax({ type: "POST", contentType: "application/json", dataType: "json", data: '{"values":' + JSON.stringify(params) + '}', ...
这当然可以简化:
var parameters = [{ "A": 5}, { "B": "Test"}]; var dictionary = new Array(); for (var i in parameters) { var key = Object.keys(args[i])[0]; var value = args[i][key]; dictionary.push({ "Key": key, "Value": value }); } $.ajax({ type: "POST", contentType: "application/json", dataType: "json", data: '{"values":' + JSON.stringify(dictionary) + '}', ...
拿Javascript对象
var obj = { Key: "xyz", Value: "9" }; Array objArray = new Array(); objArray.push(obj); $.ajax({ //Add necessary detail here data: JSON.stringify(objArray); });
在服务层中,使用NameValuePair数组替换对象
上述就是C#学习教程:Javascript数组作为WCF Web服务参数分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
public void DoSomething(NameValuePair[] values) {} [DataContract] public class NameValuePair { [DataMember] public string Key {get;set;} [DataMember] public string Value {get;set;} }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1003207.html