ASP.NET MVC Route的几种配置方法
发布时间:2020-12-16 09:18:40 所属栏目:asp.Net 来源:网络整理
导读:1.使用httpContext.Request.UserAgent(俗称UA)来过滤传进来的Url请求,在RegisterRoutes里Add如何路由: routes.Add("chrome",new ElevenRoute()); public class ElevenRoute : RouteBase // 扩展这个类 { public override RouteData GetRouteData(HttpCon
1.使用httpContext.Request.UserAgent(俗称UA)来过滤传进来的Url请求,在RegisterRoutes里Add如何路由: routes.Add("chrome",new ElevenRoute()); public class ElevenRoute : RouteBase //扩展这个类 { public override RouteData GetRouteData(HttpContextBase httpContext) { if (httpContext.Request.UserAgent.IndexOf("Chrome/") >= 0)//通过拿到http的上下文,为所欲为,判断请求进来的浏览器版本,来过滤用户请求等等。 { return null; } else { RouteData routeData = new RouteData(this,new MvcRouteHandler()); routeData.Values.Add("controller","Home"); routeData.Values.Add("action","Refuse"); return routeData; } } public override VirtualPathData GetVirtualPath(RequestContext requestContext,RouteValueDictionary values) { return null; } } 2.使用固定的Url访问服务器上的文件,一般用于不给员工开访问服务器的权限,但是要查看服务器上的日志,怎么办。 routes.Add("Eleven",new Route("Eleven/201903042135",new ElevenRouteHandler())); public class ElevenRouteHandler : IRouteHandler //扩展RouteHandler { public IHttpHandler GetHttpHandler(RequestContext requestContext) { return new ElevenHttpHandler(); } } public class ElevenHttpHandler : IHttpHandler { public bool IsReusable => true; public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html"; //context.Response.Write("This is Eleven‘s Framework"); string text = File.ReadAllText(context.Server.MapPath("~/Web.Config")); context.Response.Write(text); context.Response.End(); //context.Response.Write($"Now is {DateTime.Now.ToShortTimeString()}"); } } 3.匹配以Brad开头的地址,控制器就用Home(defaults的作用就是,当你输入http://localhost:8088/Brad的时候,匹配的还是http://localhost:8088/Home) routes.MapRoute( name: "Brad",url: "Brad/{action}/{id}",defaults: new { controller = "Home",action = "Index",id = UrlParameter.Optional } );//1 匹配以Brad开头的地址,控制器就用Home 4.写死了WYD就访问Home/About routes.MapRoute( name: "WYD",url: "WYD",action = "About",id = UrlParameter.Optional } ); 5.从Url中直接读取年月日参数 routes.MapRoute( name: "Regex",url: "{controller}/{action}_{Year}_{Month}_{Day}",id = UrlParameter.Optional },constraints: new { Year = @"^d{4}",Month = @"^d{2}",Day = @"^d{2}",} ); public string Format(int year,int month,int day) { return $"This is {year}-{month}-{day}"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET Core托管和部署Linux实操演练手册
- asp.net-mvc-4 – 尽管设置了配置值,但超出了最大请求长度
- asp.net-mvc – 如何自动刷新部分视图?
- asp.net – Solr Connection’已在容器中注册
- asp.net-mvc – 在MVC ActionLink中使用Knockout绑定
- 获取asp.net中的上一页名称
- asp.net-mvc – 如何在asp.net mvc4应用程序中显示注册用户
- ASP.NET MVC 3静态文件的简单场景授权
- VS 2013 RC中缺少ASP.NET Web窗体脚手架功能
- asp.net – 如何从列表框中获取所选项目valus而不使用for循
推荐文章
站长推荐
- asp.net-mvc – MVC ELMAH和SQL Azure
- asp.net web大文件上传带进度条实例代码
- asp.net-mvc – 可以在mvc JsonResult控制器方法
- asp.net – ASHX处理程序返回500内部服务器错误
- .net – 为什么事件处理程序只能在IHttpModule初
- asp.net core 使用identityServer4的密码模式来进
- asp.net-mvc – ASP.NET MVC Beta支持列表中的Mo
- asp.net – 如何防止Hangfire重复作业在连续执行
- asp.net-mvc – ASP.NET MVC – 出错时的声明性重
- 如何识别asp.net Web应用程序中的iisreset?
热点阅读