如何将一组字符串传递给AngularJS的C#web api?

时间:2016-05-23 09:45:20

标签: c# angularjs asp.net-web-api

data.js

我的方法电话:

var dateCollection = ["2014-12-12,"2013-12-12"];
getCompanyData(1,dateCollection);
var getCompanyData = function (Id, stmtDate)
        {
            var promise = $http.get(baseUrl() + "api/Search/CompanyData/" + Id + "/" + stmtDate)
                .success(function (data, status, headers, config) {

                    return data;
                })
                .error(function (data, status, headers, config) {
                    return data;
                });

            return promise;

        }

SearchController.cs

[ActionName("CompanyData")]
[HttpGet]
public async Task<IHttpActionResult> GetCompanyData(string Id , string[] stmtDate)
{
}

我需要将stmtDate(包含字符串)的数组发送到GetCompanyData Web API控制器。

我的WebApiConfig.cs有以下路线:

config.Routes.MapHttpRoute(
                name: "ApiByMultiParams",
                routeTemplate: "api/{controller}/{action}/{Id}/{stmtDate}"
            );

问题在于,在尝试传递数据时,当它遇到Web API控制器方法时:GetCompanyDatastmtDate没有收到数组,它将以{{ 1}}。另外,我将非常感谢有关如何转换日期时间的任何建议,其格式为:null(在AngularJS中)。

1 个答案:

答案 0 :(得分:1)

你正在尝试在url字符串的末尾添加数组。将日期作为参数发送

var getCompanyData = function (Id, stmtDate) {
    var promise = $http.get(baseUrl() + "api/Search/CompanyData/" + Id, {
            params: {
                date: stmtDate
            }
        }
    ).success(function (data, status, headers, config) {

            return data;
        })
        .error(function (data, status, headers, config) {
            return data;
        });

    return promise;

}