2017-10-10 67 views
0

Component.ts如何从组件http.post方法调用的Web API2控制方法angular2

TableHeader(Id: any) {  
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 
    let body = JSON.stringify(Id); 
    var sub = this.http.post('api/Customers/GetColumnNames/', body, options) 
    .map((res: Response) => res.json()); 
} 

WebApiController

[AcceptVerbs("Post")] 
[ActionName("GetColumnNames")] 
public DataSet GetColumnNames(String id) { 
    DataSet ds = new DataSet(); 
    if (Convert.ToInt32(id) > 0) { 
    //AccountingMethods objAcc = new AccountingMethods(); 
    //return ds = objAcc.GetColumnsNames("GetColumns", id); 
    } 
    return new DataSet(); 
} 

当调用的WebAPI控制器动作名字。我是不是击中

+0

你能只通过ID广告查询字符串和尝试。 –

+0

展WebApiConfig在哪里配置你的路线 – Nkosi

回答

0

我们将需要一些额外的信息:

我是大会NG,你有以下WebApiConfig

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     // Attribute routing. 
     config.MapHttpAttributeRoutes(); 

     // Convention-based routing. 
     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 
} 

我也想尝试

[Route("api/Customers/GetColumnNames")] 
[HttpPost] 

如果一切都失败尝试改变调用

var sub = this.http.post('api/Customers/GetColumnNames', body, options) 
.map((res: Response) => res.json()); 

中的斜杠不应该影响但过去曾提到它是一个问题,所以尝试可能有价值。

什么将极大地帮助你从浏览器中添加的错误(在Chrome浏览它的工具和网络上看到通话F12。

相关问题