如何使用web api将根目录映射到c#中的控制器?

use*_*235 3 c# asp.net-mvc asp.net-web-api

我有一个#web api(.net 4)Web应用程序.我有几个控制器.我想将新控制器映射到Web应用程序的根目录.

所以我有 http://localhost/listproducts

我想要的网址是 http://localhost

但我不知道如何告诉控制器使用根目录.它似乎是根据名称配置的.

我采用的解决方案是:

config.Routes.MapHttpRoute(
      name: "ListProductsApi",
             routeTemplate: "",
             defaults: new { controller = "ListProducts" } // Parameter defaults
);
Run Code Online (Sandbox Code Playgroud)

诀窍是defaults: new { controller = "ListProducts" } 线.(我需要一个POST动作,所以我只是将动作撤出.显然当你想要根路径"/"时,你需要明确命名控制器.

Dan*_*rth 7

您只需更改已有的默认路线即可.它应该看起来像这样:

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index",
                    id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)

更改controller = "Home"controller = "listproducts".