如何编写MapRoute mvc4

时间:2013-03-15 17:52:58

标签: asp.net-mvc-4 maproute

我有一个api控制器:

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

我希望能够从/api/USD/trades.json?tid=5

等浏览器中调用它

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

1 个答案:

答案 0 :(得分: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