[英]How do I pass a C# object as the parameter to a Javascript function
[英]How to pass javascript object into c# web service with c# object as a parameter
所以基本上我有一个C#Web方法,我将通过ajax来调用。 C#参数是一个简单的KeyValue对象,如下所示:
public class KeyValue
{
public string Key { get; set; }
public string Value { get; set; }
}
在我的JavaScript中,我创建了一个具有键值对结构的哈希。
var updateSettingsHash = [];
这是它的初始化位置,然后我稍后使用.Add将其添加到该数组中,并遵循该数组的键/值格式(因此它的作用就像字典一样)。
现在我的问题是,我有一个接受参数List的C#网络方法
[WebMethod]
public ServiceResult SaveConfigurationValuesForPrivateLabel(List<KeyValue> settings)
所以真的有两个问题。 A)如何使用ajax传递列表? 既然在javascript中没有列表? 和B)如何在javascript中使用KeyValue类创建实例并能够创建实例列表?
您可以创建一个javascript对象数组,并使用例如jquery调用web方法,如下所示:
var settingsList= [{Key: 'a', Value: 'A'}, {Key: 'b', Value: 'B'}, {Key: 'c', Value: 'C'}];
var jsonText = JSON.stringify({ settings: settingsList});
$.ajax({
type: "POST",
url: "WebService1.asmx/SaveConfigurationValuesForPrivateLabel",
data: jsonText,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function() { alert("it worked"); },
failure: function() { alert("Something's wrong"); }
});
至于直接在javascript中使用C#类,我认为这是不可能的,您可以使用上面显示的匿名对象,也可以创建这样的对象原型:
function KeyValue(Key, Value){
this.Key = Key;
this.Value = Value;
}
var keyValuePair = new KeyValue('x', 'X');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.