我找不到基于WebApi移除我的移动服务项目的默认路径路径的方法。它会生成诸如" / api / {controller} / {id}"等路由。和" / tables / {controller} / {id}"我不想为客户端应用提供。而不是这个我正在映射这样的路线 - " / api_v1 / {controller} / {id}"并希望将其作为访问数据的一种可能途径。
以下代码不起作用:
public static class WebApiConfig
{
public static void Register()
{
// Use this class to set configuration options for your mobile service
ConfigOptions options = new ConfigOptions();
options.LoginProviders.Add(typeof(CustomLoginProvider));
// Use this class to set WebAPI configuration options
HttpConfiguration config = ServiceConfig.Initialize(new ConfigBuilder(options));
// add login provider
config.SetIsHosted(true);
//foreach (var route in config.Routes)
// Console.WriteLine(route.ToString());
config.Routes.MapHttpRoute(
name: "api_v1",
routeTemplate: "api_v1/{controller}/{id}",
defaults: new { id = RouteParameter.Optional, } );
//Create the object of particular router
string result = "";
foreach (var r in config.Routes)
result += r.ToString();
// This does not remove any route.
// Also there is no 'Name' property for Route to know exact match
config.Routes.Remove("api");
}
}
更新 我为每条可能的路线调用config.Routes.Remove(""),它只删除一个名称" tables"。但是" api"路线还在那里。
ServiceConfig.Config.Routes.Remove("DefaultApi"); // not removed any
ServiceConfig.Config.Routes.Remove("api"); // not removed any route
ServiceConfig.Config.Routes.Remove("tables"); // this works!
如何删除默认' api'路线?
答案 0 :(得分:0)
在App_Start
中,您应该有一个名为RouteConfig
的文件。
在该类中有一个名为RegisterRoutes
的方法,您将在其中看到预先配置的路由映射。
您可以根据需要删除这些内容。
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
另外,如果要使用MVC属性进行路由,可以添加以下行:
routes.MapMvcAttributeRoutes();
答案 1 :(得分:0)