如何通过angularjs发送webservice中的字符串列表

时间:2017-06-23 12:54:47

标签: angularjs web-services ionic-framework

我正在使用angularjs开发离子1中的跨平台应用程序,我无法在asp.net Web服务中传递字符串列表。 angularjs代码:

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

这是我的网络服务,它采用了List参数

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

2 个答案:

答案 0 :(得分:0)

不要将Lists用作参数类型,而是将复杂对象创建为包含所需列表的单个参数。例如;

    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
    }

在angular内部创建一个新对象并填充它,按照MyParameterObject中的描述命名属性。

修改

角度呼叫变为:

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


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

        $http(req);

答案 1 :(得分:0)

您应该list发送array string作为:

api

这是var Ids = ["id1", "id2"] ,或List<string> Ids

types

您必须将主题放在对象中并将其发送到var types = ["type1", "type2"]

API