1

我有一个 api 控制器:

public class ExchangesController : ApiController
{
    [HttpGet]
    public List<ExchangesTrade> GetTrades(long tid)
    {

我希望能够从浏览器中调用它/api/USD/trades.json?tid=5

我应该如何在 RouteConfig 中编写“routes.MapRoute”?

4

1 回答 1

1

首先,routes.MapRoute 将为传统的 MVC 应用程序添加路由,如果你想为你的 web api 添加路由,你需要在你的 web api HttpConfiguration 路由上使用 MapHttpRoute 添加 Http 路由。

在您的 web api 配置中,您可以添加一个 URI 路径映射扩展,如下所示:

config.Formatters
      .JsonFormatter
      .MediaTypeMappings
      .Add(new UriPathExtensionMapping("json", "application/json"));

添加这样的路线:

config.Routes.MapHttpRoute(
        name: "ExchangesRouteWithExtensions",
        routeTemplate: "api/USD/{action}.{ext}/{tid}",
        defaults: new { controller = Exchanges, tid = RouteParameter.Optional }
    );

然后像这样访问您的端点:

api/USD/trades.json?tid=5
于 2013-03-16T06:02:04.183 回答