javascript:将数组传递给WCF服务(c#)

javascript:将数组传递给WCF服务(c#),c#,javascript,jquery,wcf,C#,Javascript,Jquery,Wcf,我正在尝试向wcf服务发送数组 我的javascript: var listoffice = new Array(); var office1 = { officeid : "1", officename : "Bat Cave" }; var office2 = { officeid : "2", officename : "Robin House" }; listoffice[0] = office1; listoffice[1] = office2; $.getJSON("Conta

我正在尝试向wcf服务发送数组

我的javascript:

var listoffice = new Array();

var office1 = { officeid : "1", officename : "Bat Cave" };
var office2 = { officeid : "2", officename : "Robin House" };

listoffice[0] = office1;
listoffice[1] = office2;

$.getJSON("ContactService.svc/createnewAwesomeoffice", { listoffice: listoffice }, function (data) {
   ...           
});
服务内容如下:

public struct officetoadd
{
     public string officeid;
     public string officename;
}

[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public void createnewAwesomeoffice(List<officetoadd> listoffice)
{
   ...
}
$.getJSON("ContactService.svc/createnewAwesomeoffice", { listoffice: arrayjson }, function (data) {
   ...           
});
public struct officeload
{
公共字符串officeid;
公共字符串官方名称;
}
[经营合同]
[WebGet(ResponseFormat=WebMessageFormat.Json)]
public void createnewAwesomeoffice(列表办公室)
{
...
}

问题是listoffice(在服务中)总是空的。我错过什么了吗

我认为您还需要在WebGetAttribute中添加RequestFormat。。。此外,您可能希望尝试将“OfficeLoadd”转换为一个类,并使用DataContract和DataMember属性对其进行修饰

[DataContract]
public class officetoadd
{
     [DataMember]
     public string officeid;
     [DataMember]
     public string officename;
}

[OperationContract]
[WebGet(RequestFormat - WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
public void createnewAwesomeoffice(List<officetoadd> listoffice)
{
   ...
}
[DataContract]
公开课
{
[数据成员]
公共字符串officeid;
[数据成员]
公共字符串官方名称;
}
[经营合同]
[WebGet(RequestFormat-WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json)]
public void createnewAwesomeoffice(列表办公室)
{
...
}

我认为您还需要在WebGetAttribute中添加RequestFormat。。。此外,您可能希望尝试将“OfficeLoadd”转换为一个类,并使用DataContract和DataMember属性对其进行修饰

[DataContract]
public class officetoadd
{
     [DataMember]
     public string officeid;
     [DataMember]
     public string officename;
}

[OperationContract]
[WebGet(RequestFormat - WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
public void createnewAwesomeoffice(List<officetoadd> listoffice)
{
   ...
}
[DataContract]
公开课
{
[数据成员]
公共字符串officeid;
[数据成员]
公共字符串官方名称;
}
[经营合同]
[WebGet(RequestFormat-WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json)]
public void createnewAwesomeoffice(列表办公室)
{
...
}

我认为您还需要在WebGetAttribute中添加RequestFormat。。。此外,您可能希望尝试将“OfficeLoadd”转换为一个类,并使用DataContract和DataMember属性对其进行修饰

[DataContract]
public class officetoadd
{
     [DataMember]
     public string officeid;
     [DataMember]
     public string officename;
}

[OperationContract]
[WebGet(RequestFormat - WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
public void createnewAwesomeoffice(List<officetoadd> listoffice)
{
   ...
}
[DataContract]
公开课
{
[数据成员]
公共字符串officeid;
[数据成员]
公共字符串官方名称;
}
[经营合同]
[WebGet(RequestFormat-WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json)]
public void createnewAwesomeoffice(列表办公室)
{
...
}

我认为您还需要在WebGetAttribute中添加RequestFormat。。。此外,您可能希望尝试将“OfficeLoadd”转换为一个类,并使用DataContract和DataMember属性对其进行修饰

[DataContract]
public class officetoadd
{
     [DataMember]
     public string officeid;
     [DataMember]
     public string officename;
}

[OperationContract]
[WebGet(RequestFormat - WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
public void createnewAwesomeoffice(List<officetoadd> listoffice)
{
   ...
}
[DataContract]
公开课
{
[数据成员]
公共字符串officeid;
[数据成员]
公共字符串官方名称;
}
[经营合同]
[WebGet(RequestFormat-WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json)]
public void createnewAwesomeoffice(列表办公室)
{
...
}

好的,我自己找到了解决方案。我认为写在这里是恰当的,这样可以帮助其他人

我只需使用以下命令将数组转换为JSON:

var arrayjson = JSON.stringify(listoffice);
然后将其传递给WCF服务:

public struct officetoadd
{
     public string officeid;
     public string officename;
}

[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public void createnewAwesomeoffice(List<officetoadd> listoffice)
{
   ...
}
$.getJSON("ContactService.svc/createnewAwesomeoffice", { listoffice: arrayjson }, function (data) {
   ...           
});

注意:JSON对象现在是大多数现代web浏览器(IE 8及以上)的一部分。

好的,我自己找到了一个解决方案。我认为写在这里是恰当的,这样可以帮助其他人

我只需使用以下命令将数组转换为JSON:

var arrayjson = JSON.stringify(listoffice);
然后将其传递给WCF服务:

public struct officetoadd
{
     public string officeid;
     public string officename;
}

[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public void createnewAwesomeoffice(List<officetoadd> listoffice)
{
   ...
}
$.getJSON("ContactService.svc/createnewAwesomeoffice", { listoffice: arrayjson }, function (data) {
   ...           
});

注意:JSON对象现在是大多数现代web浏览器(IE 8及以上)的一部分。

好的,我自己找到了一个解决方案。我认为写在这里是恰当的,这样可以帮助其他人

我只需使用以下命令将数组转换为JSON:

var arrayjson = JSON.stringify(listoffice);
然后将其传递给WCF服务:

public struct officetoadd
{
     public string officeid;
     public string officename;
}

[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public void createnewAwesomeoffice(List<officetoadd> listoffice)
{
   ...
}
$.getJSON("ContactService.svc/createnewAwesomeoffice", { listoffice: arrayjson }, function (data) {
   ...           
});

注意:JSON对象现在是大多数现代web浏览器(IE 8及以上)的一部分。

好的,我自己找到了一个解决方案。我认为写在这里是恰当的,这样可以帮助其他人

我只需使用以下命令将数组转换为JSON:

var arrayjson = JSON.stringify(listoffice);
然后将其传递给WCF服务:

public struct officetoadd
{
     public string officeid;
     public string officename;
}

[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public void createnewAwesomeoffice(List<officetoadd> listoffice)
{
   ...
}
$.getJSON("ContactService.svc/createnewAwesomeoffice", { listoffice: arrayjson }, function (data) {
   ...           
});

注意:JSON对象现在是大多数现代web浏览器(IE 8及以上)的一部分。

Ty非常感谢您的建议,但我只是使用JSON.stringify。我可以将参数设置为
IEnumerable
或任何其他接口或比
List
更原始的
类吗?非常感谢您的建议,但是我只是使用JSON.stringify。我可以将参数设置为
IEnumerable
或任何其他接口或比
List
更原始的
class
,非常感谢您的建议,但是我只是使用JSON.stringify。我可以将参数设置为
IEnumerable
或任何其他接口或比
List
更原始的
class
,非常感谢您的建议,但是我只是使用JSON.stringify。我可以将参数设置为
IEnumerable
或任何其他接口或比
List
更原始的
类吗?