2016-09-30 2 views
0

Я пытаюсь позвонить своему контроллеру API .net из моей службы Angular 2, но я все равно получаю 404, что он не найден. Я могу перейти к функции api в браузере и вернуть данные просто отлично (например: http://localhost:51849/api/Application/Get). Любая подсказка, где я ошибаюсь? Я сделал аналогичную работу в AngularJS 1, как это, без проблем. Любая помощь приветствуется. Благодаря!Угловой 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

Смежные вопросы