asp.net-mvc-routing – ASP.NET Web Api路由(IIS vs Self Hoste
发布时间:2020-12-15 22:41:09 所属栏目:asp.Net 来源:网络整理
导读:我发现在ASP.NET Web Api中的路由基类中有一个小的区别,这迫使我写了一个小帮手类,这样我就可以定义一次路由.有没有理由呢?我假设框架太大了,使得两个RouteCollections都是从同一个基类派生出来的,或者实现了同一个接口(这样可以使这个类更简单) public sta
我发现在ASP.NET Web Api中的路由基类中有一个小的区别,这迫使我写了一个小帮手类,这样我就可以定义一次路由.有没有理由呢?我假设框架太大了,使得两个RouteCollections都是从同一个基类派生出来的,或者实现了同一个接口(这样可以使这个类更简单)
public static class RouteMapper { private class Route { public string Name { get; set; } public string Template { get; set; } public object Defaults { get; set; } public Route(string name,string template,object defaults) { Name = name; Template = template; Defaults = defaults; } } private static List<Route> GetRoutes() { return new List<Route> { new Route( "API Default","api/{controller}/{id}",new {id = RouteParameter.Optional}) }; } public static void AddHttpRoutes(this HttpRouteCollection routeCollection) { var routes = GetRoutes(); routes.ForEach(route => routeCollection.MapHttpRoute(route.Name,route.Template,route.Defaults)); } public static void AddHttpRoutes(this RouteCollection routeCollection) { var routes = GetRoutes(); routes.ForEach(route => routeCollection.MapHttpRoute(route.Name,route.Defaults)); } } 这允许我做的是在我的Global.asax和我的集成测试中调用一个简单的AddHttpRoutes方法. 集成测试 var configuration = new HttpSelfHostConfiguration("http://localhost:20000"); configuration.Routes.AddHttpRoutes(); _server = new HttpSelfHostServer(configuration); _server.OpenAsync().Wait(); Global.asax中 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.AddHttpRoutes(); routes.MapRoute( "Default","{controller}/{action}/{id}",new { controller = "Home",action = "Index",id = UrlParameter.Optional } ); } 这是一个已知的问题,它是否可能在ASP.NET Web Api的更高版本中得到修复? 解决方法
是的,由于ASP.NET已经有路由,但是我们不能直接依赖它,因为这样会阻止自主主机的支持,路由有些不同.我们仍然在看待事情如何变得更有意义.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 为什么会话是ASP.NET MVC应用程序的灾难?
- asp.net-mvc – 重启后浏览器不缓存资源
- ASP.Net MVC与Ruby on Rails
- asp.net-mvc – 如何使用ajax get或post在带有参数的mvc中将
- asp.net-mvc-4 – SessionAuthenticationModule Cookie处理
- 我的Asp.Net MVC 3站点中的奇怪错误
- asp.net-mvc – 如何在ASP.NET MVC的下拉列表中发出未编码的
- asp.net-web-api – 从数据存储实现动态OAuthBearerServerO
- azure – 升级到ASP.NET 5 beta5后如何进一步调试500内部服
- jqGrid过滤器工具栏显示单个列的搜索运算符选择器