2016-09-30 8 views
0

私のAngular 2サービスから.net APIコントローラを呼び出そうとしていますが、私は404を取得し続けています。ブラウザのAPI関数を参照して、データを返すことができます(つまり、http://localhost:51849/api/Application/Get)。私が間違っているのか何か手がかりは? AngularJS 1でこれと同様の作業をしましたが、問題はありません。どんな助けもありがとうございます。ありがとう!Angular 2 Calling。同じプロジェクトの.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コントローラ機能: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

が自動的に把握する必要がありますが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

関連する問題