asp.net mvc 自定义路由及其伪静态设置
2017-08-14 10:07
459 查看
1.新建一个类CmsRoute继承于RouteBase
ps:这样设置伪静态自定义路由的方法总有些不好用。运用在项目上,总是不稳定,估计是哪里配置问题。坑爹啊简直。。。。
public class CmsRoute: RouteBase { public override RouteData GetRouteData(HttpContextBase httpContext) { var data = new RouteData(this, new MvcRouteHandler()); string RequestUrl = httpContext.Request.RawUrl; if (!string.IsNullOrEmpty(RequestUrl)) { RequestUrl = RequestUrl.ToString(); } String[] arrTiem = RequestUrl.Split('/');//根据请求路径而进行的分割 home/index/gg.html 或 home/index/gg if (arrTiem.Length>=2) { //开始路由的基本配置 data.Values.Add("controller", arrTiem[1]); data.Values.Add("action", arrTiem[2].Split('.')[0]); //data.Values.Add("gg", gg);//额外参数 //区域配置 data.Values.Add("namespaces", new[] { "WebApplication2.Areas.tuku.Controllers" }); data.DataTokens.Add("area", "tuku"); return data; } return null;//不匹配走默认。 } public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values) { throw new NotImplementedException(); } }2.在RouteConfig中注册此路由
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.Add(new CmsRoute()); routes.MapRoute( //Admin Route "tuku", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults , namespaces: new[] { "WebApplication2.Areas.tuku.Controllers" } ).DataTokens.Add("area", "tuku"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }3.伪静态web.config设置
<system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules runAllManagedModulesForAllRequests="true"></modules> </system.webServer>
ps:这样设置伪静态自定义路由的方法总有些不好用。运用在项目上,总是不稳定,估计是哪里配置问题。坑爹啊简直。。。。
相关文章推荐
- ASP.NET MVC 自定义后缀路由设置
- ASP.NET MVC 自定义后缀路由设置
- 认识 ASP.NET 3.5 MVC 路由 创建自定义路由
- Asp.net MVC 自定义路由在IIS7以上,提示Page Not Found 解决方法
- asp.net不用设置iis实现url重写 类似伪静态路由
- ASP.NET MVC 自定义路由
- .NET应用架构设计—ASP.NETMVC 大型站点架构设计迁移Model元数据设置项(自定义元数据提供程序)
- 设置Mvc路由Asp.net 与 mvc同用
- [ASP.NET MVC2 系列] ASP.NET MVC 之如何创建自定义路由约束
- asp.net不用设置iis实现url重写 类似伪静态路由
- ASP.NET MVC 自定义路由
- 为ASP.NET MVC应用添加自定义路由
- Asp.Net MVC中捕捉错误路由并设置默认Not Found页面。
- ASP.NET MVC自定义路由 - 实现IRouteConstraint限制控制器名(转载)
- ASP.NET MVC 之创建自定义路由约束
- asp.net不用设置iis实现url重写 类似伪静态路由
- ASP.NET MVC 之如何创建自定义路由约束
- 创建自定义路由处理程序(Creating a Custom Route Handler) | 定制路由系统| 高级路由特性 |精通ASP-NET-MVC-5-弗瑞曼
- Asp.net Mvc对自定义路由进行测试
- ASP.NET MVC 路由配置 管线模式伪静态