如何通过AngularJS在Web服务中发送字符串列表



我正在Ionic 1中开发跨平台应用程序,由Angularjs by Angularjs,我无法在ASP.NET Web服务中传递字符串列表。AngularJS代码:

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

这是我的Web服务,它采用列表参数

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

您应该将array string发送到您的 api as:

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

这是List<string> Ids,或types

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)
})

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

    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);

相关内容

  • 没有找到相关文章

最新更新