2016-09-30 37 views
0

我試圖從我的Angular 2服務調用我的.net API控制器,但是我一直在404中找不到它。我可以在瀏覽器中瀏覽api函數並返回數據(即:http://localhost:51849/api/Application/Get)。任何線索我要去哪裏錯了?我在AngularJS 1中完成了類似的工作,沒有任何問題。任何幫助表示讚賞。謝謝!Angular 2從同一個項目調用.Net控制器

的角2服務電話:

getApplications(): Promise<Application[]> { 
     return this.http.get('/api/Application/Get/') 
      .toPromise() 
      .then(response => response.json().data as Application[]) 
      .catch(this.handleError); 
    } 

的.NET API控制器功能:

public class ApplicationController : ApiController 
{ 
    public HttpResponseMessage Get() 
    { 
     var applicationsModel = new ApplicationsModel(); 

     try 
     { 
      var applications = new ApplicationService().GetAllApplications(); 

      foreach (var application in applications) 
      { 
       applicationsModel.Applications.Add(new Application(application.MWF_ApplicationID, (int)application.MWF_Priority, application.MWF_DateCreated.ToString("MM/dd/yyyy"), "", "", 0, 0)); 
      } 

     } 
     catch(Exception e) 
     { 
      applicationsModel.Error = "Error getting applications: " + e.Message; 
     } 

     return this.Request.CreateResponse(HttpStatusCode.OK, applicationsModel); 
    } 
} 

回答

1

一個API控制器,你會打電話this.http.get("/api/Application")

應該自動地找出它應該爲你調用Get()函數。

本文件爲更多信息,很好看的: http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api

+0

我都試過的方法,但調用它時仍然獲得了404。 – Nick

+0

您是否嘗試將[HttpGet]屬性添加到方法中?此時吐出球。 – silentsod

+0

是的,我已經嘗試過[HttpGet]的方法,但仍然無濟於事。我不確定我錯過了什麼。特別是因爲我可以通過直接將http:// localhost/api/Application/Get url導入瀏覽器來獲取數據。 – Nick

相關問題