2016-05-23 30 views
2

data.js如何從AngularJS向C#web api傳遞字符串數組?

我的方法調用:

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

我需要發送的陣列3210(包含字符串)到GetCompanyData Web API控制器。

WebApiConfig.cs具有以下路線:

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

的問題是在試圖傳遞數據的陣列中,當它擊中網絡API控制器的方法:GetCompanyDatastmtDate不接收陣列和它即將成爲null。此外,我希望對如何轉換格式爲2014-12-12 00:00:00 to 2014-12-12(在AngularJS中)的日期時間有任何建議。

回答

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; 

} 
+0

我試過這個,但我得到了404錯誤。我應該相應地修改webapiconfig.cs,如果我想這樣嗎? – sujai

+0

是的,它應該是'api/{controller}/{action}/{Id}' – aseferov

+0

如果我只在webapiconfig中提供Id,它將如何處理我的第二個參數stmtDate? – sujai