我有一个c#web api(.net 4)Web应用程序。我有几个控制器。我想将新控制器映射到Web应用程序的根目录。
所以,我有http://localhost/listproducts
我希望网址为http://localhost
但我不知道如何告诉控制器使用根目录。它似乎是根据名称配置的。
我选择的解决方案是:
config.Routes.MapHttpRoute(
name: "ListProductsApi",
routeTemplate: "",
defaults: new { controller = "ListProducts" } // Parameter defaults
);
技巧是defaults: new { controller = "ListProducts" }
行。 (我需要一个POST动作,所以我只是将动作移出。显然当你想要根路径“/”时,你需要明确命名控制器。
答案 0 :(得分:7)
您只需更改已有的默认路线即可。它现在应该是这样的:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index",
id = UrlParameter.Optional }
);
将controller = "Home"
更改为controller = "listproducts"
。
答案 1 :(得分:2)
它应该相当简单,只需更改global.asax.cs中的默认路由,而不是
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
将其更改为
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "ListProducts", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);