2017-06-23 4 views
0

私はasp.net Webサービスの文字列のリストを渡すことができないangularjsによってionic 1のクロスプラットフォームアプリケーションを開発しています。 angularjsコード:anglejsを使ってwebserviceの文字列のリストを送る方法

var request = { 
      params:[] 
     }; 
     request.params.push(jsonObjectA); 
     request.params.push({"someString" : "ABCDEF"}); 
$http({ 
      method: 'POST', 
      url: targetUri, 
      data: request 
     }) 

これは

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public string SearchBasedResult(List<string> Id, List<string> type, string storeid) 
{ 
     //some code 
} 
+0

Webサービスがデータを期待しない方法は?リクエスト本体にあるのか、それともクエリのパラメータですか? –

+0

Webサービスは、パブリック文字列SearchBasedResult(リスト Id、リストタイプ、ストリングstoreid)からのデータを期待しています。それはクエリパラメータです。 – annu

+0

よろしくお願いします。それで '$ http'に' data'の代わりに 'params'を使うべきです。私は 'data'がリクエスト本体のコンテンツを送信すると思います。 –

答えて

0

代わりにそのリストを含む単一のパラメータとして複雑なオブジェクトを作成し、パラメータの型としてリストを使用しないでくださいリストのパラメータを取る私のWebサービスであり、あなたが必要です..例;

public class MyParamterObject 
    { 
     public List<string> Ids { get; set; } 
     public List<string> Types { get; set; } 
     public string StoreId { get; set; } 
    } 

次のようにパラメータとして新しいオブジェクトを使用して、あなたのコントローラを再書き込み:

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public string SearchBasedResult(MyParamterObject param) 
    { 
     //some code 
    } 

角度の中にあなたMyParameterObjectで説明したような特性を命名、新しいオブジェクトを作成し、それを埋めます。

編集

角度の呼び出しは次のようになります。

 var paramObject = {}; 
     paramObject.Ids = idsList; 
     paramObject.Types = typesList; 
     paramObject.StoreId = "storeId"; 


     var req = { 
      method: 'POST', 
      url: targetUri, 
      data: paramObject 
     }; 

     $http(req); 
+0

は動作しません – annu

0

あなたにあなたのapiarray stringを送信する必要があります:これはList<string> Ids、またはtypesためである

var Ids = ["id1", "id2"] 

var types = ["type1", "type2"] 

は、オブジェクトにテーマを入れてAPIに送信する必要があります:

var request = { 
    Ids: ["id1", "id2"], 
    Types = ["type1", "type2"], 
    StoreId: "123456" 
} 

$http({method: 'POST',header:{Content-Type: application/json},url: targetUri,data: request}).then(function(response) 
{ 
    console.log(response) 
}) 
関連する問題