[英]javascript : pass an array to WCF service (c#)
我正在嘗試將數組發送到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)
{
...
}
問題是listoffice(服務中)始終為null。 我想念什么嗎?
我認為您還需要在WebGetAttribute中放入RequestFormat...。此外,您可能希望嘗試將“ officetoadd”變成一個類,並使用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)
{
...
}
好的,我自己找到了解決方案。 我認為這與在此處編寫有關,因此可能會對其他人有所幫助。
我只需要使用以下命令將數組轉換為JSON:
var arrayjson = JSON.stringify(listoffice);
然后將其傳遞給WCF服務:
$.getJSON("ContactService.svc/createnewAwesomeoffice", { listoffice: arrayjson }, function (data) {
...
});
注意: JSON對象現在是大多數現代Web瀏覽器(IE 8及更高版本)的一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.