【问题标题】:ASP MVC 4 + Web APIASP MVC 4 + Web API
【发布时间】:2017-08-17 09:38:47
【问题描述】:

我有 ASP MVC 4 项目和 Web API。

我想在主应用程序中使用 Web API。我这样做了:

WebAPI 项目

WebApiConfig.cs

public static void Register(HttpConfiguration config) {
            config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
            config.Formatters.JsonFormatter.SupportedMediaTypes
                                           .Add(new MediaTypeHeaderValue("text/html"));
}

Global.asax

protected void Application_Start() {
            GlobalConfiguration.Configure(WebApiConfig.Register);
}

StatisticsController.cs

public class StatisticsController : ApiController {
        TopUserFactory topUserFactory = new TopUserFactory();
        // GET api/statistics/topUsers
        [ActionName("topUsers")]
        public List<TopUser> Get() {
            return topUserFactory.Top10Users();
        }
}

但是当我选择localhost:31003/api/statistics/{topUsers}时什么都没有发生

如何使用其他项目的WebAPI项目?

【问题讨论】:

  • 在本地运行时,两个站点将具有不同的端口,请确保您使用正确的端口。
  • localhost:31003/api/statistics/topUsers 试试这个
  • @ryan-searle 如何定义每个站点的端口?

标签: c# asp.net asp.net-mvc asp.net-web-api


【解决方案1】:

在本地处理多个站点时,它们将具有不同的端口号。

您可以通过单击任务栏上的 IIS Express 图标来检查端口号:

您可以通过添加配置来更改端口号:

Changing project port number in Visual Studio 2013

【讨论】:

    【解决方案2】:

    您的代码看起来不错。使用 WebAPI 很容易出错,请确保您对 http://localhost:31003/api/statistics/topUsers 执行无参数 GET

    如果做不到,请使用此工具:https://www.nuget.org/packages/routedebugger/

    【讨论】:

      猜你喜欢
      • 2013-02-27
      • 2012-03-27
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 2013-10-22
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多