是" api /"在ASP.NET MVC路由中保留?

时间:2014-08-13 04:13:41

标签: asp.net-mvc asp.net-mvc-4 asp.net-web-api

我不想使用ASP.NET MVC WebApi,但我确实想使用URL / api / controller / action,以便它由我自己的控制器处理

我这样做:

        routes.MapRoute(
            name: "APIRoute",
            url: "api/{controller}/{action}/",
            namespaces: new[] { "MyProject.Controllers.APIControllers" }

但似乎无法在MapRoute(...)

中使用api/

如果我导航到http://localhost/api/Blah/List则无效

如果我改变路线:

        routes.MapRoute(
            name: "APIRoute",
            url: "apix/{controller}/{action}/",
            namespaces: new[] { "MyProject.Controllers.APIControllers" }

        (Notice the 'x' in 'apix/')

然后我导航到http://localhost/apix/Blah/List它按预期工作

我该怎么办?是否可以覆盖api/

1 个答案:

答案 0 :(得分:1)

听起来您可能已经创建了一个包含Web API的新项目,这就是您遇到困难的原因。

在您的项目中搜索WebApiConfigDefaultApi - 如果您有任何结果,那么Web API已添加到您的项目中,并且您想要修改默认的routeTemplate默认为api/{controller}/{id}