簡體   English   中英

javascript:將數組傳遞給WCF服務(c#)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM