【问题标题】:Angular 2 Calling .Net Controller from the Same ProjectAngular 2 从同一个项目中调用 .Net 控制器
【发布时间】:2017-02-09 04:19:51
【问题描述】:

我正在尝试从我的 Angular 2 服务调用我的 .net API 控制器,但我不断收到一个 404 未找到。我可以在浏览器中浏览到 api 函数并返回数据就好了(即:http://localhost:51849/api/Application/Get)。任何线索我要去哪里错?我已经在 AngularJS 1 中完成了类似的工作,没有任何问题。任何帮助表示赞赏。谢谢!

Angular 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);
    }
}

【问题讨论】:

    标签: .net angularjs asp.net-web-api angular


    【解决方案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

    【讨论】:

    • 我已经尝试了两种方法,但调用它时仍然得到 404。
    • 您是否尝试将 [HttpGet] 属性添加到方法中?此时吐球。
    • 是的,我已经在方法上使用 [HttpGet] 进行了尝试,但仍然无济于事。我不确定我错过了什么。特别是因为我可以通过直接将localhost/api/Application/Get url 放入浏览器来访问它并获取数据。
    • 我设法让它工作。留下的快速入门代码中一定有一些遗留问题给我带来了问题。也许..无论哪种方式,感谢您的帮助。 :)
    猜你喜欢
    • 2015-08-24
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多