asp.net-mvc-routing – ASP.NET Web Api路由(IIS vs Self Hosted)
发布时间:2020-05-24 07:20:26 所属栏目:asp.Net 来源:互联网
导读:我发现在ASP.NET Web Api中的路由基类中有一个小的区别,这迫使我写了一个小帮手类,这样我就可以定义一次路由.有没有理由呢?我假设框架太大了,使得两个RouteCollections都是从同一个基类派生出来的,或者实现了同一个接口(这样可以使这个类更简单) public stat
|
我发现在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 – 如何在捕获httpwebrequest超时后关闭底层连接
- asp.net-mvc – ASP.NET MVC – 值类型的自定义验证消息
- asp.net – 替换过时的System.Xml.XmlDataDocument?
- asp.net-mvc – Sitecore 6.6中的静态视图渲染
- asp.net-mvc – 有没有人知道让Ninject 2在ASP.NET MVC中工
- asp.net-mvc – Url.Action如何从模型中添加参数值
- asp.net-mvc-3 – 什么是MVC 3中的ModelState类?
- asp.net-mvc-3 – Apress Pro Asp.net MVC框架3 – SportsS
- asp.net-mvc – ASP.NET MVC提醒我旧的经典ASP意大利面条代
- asp.net-mvc-3 – ASP.Net MVC 3 Razor Concatenate String
推荐文章
站长推荐
- ASP.NET MVC 3 ValidateRequest(false)不能使用F
- Asp.Net MVC 5 Owin Twitter Auth throwing 401
- asp.net-mvc – MVC的实际应用||什么时候使用,还
- asp.net-mvc-3 – ASP.Net Mvc 3 Url.Action方法
- asp.net-mvc – 如何正确识别vs2008版本级别?
- asp.net – 在gridview中显示2位小数位数
- ASP.NET Web API,Web服务发现和客户端创建
- asp.net – 表单身份验证是否与Web负载平衡器一起
- .net – SqlBulkCopy超时
- asp.net – 分布式事务完成 可以在新事务或NULL事
热点阅读
