博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net core web 中使用app.UseRouter的几种使用方式
阅读量:5788 次
发布时间:2019-06-18

本文共 2678 字,大约阅读时间需要 8 分钟。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)        {            loggerFactory.AddConsole();            if (env.IsDevelopment())            {                app.UseDeveloperExceptionPage();            }            app.UseHangfireServer();            app.UseHangfireDashboard();            //方式一            //app.Run(async (context) =>            //{            //    await context.Response.WriteAsync("Hello World!");            //});            //方式二            //var endpoint = new RouteHandler((c) => c.Response.WriteAsync("Hello, I am Routing!"));            //app.UseRouter(endpoint);            //方式三            var endpoint = new RouteHandler((c) =>c.Response.WriteAsync($"Hello, I am Routing! your item is {c.GetRouteValue("item")}"));            var resolver = app.ApplicationServices.GetRequiredService
(); var runRoute = new Route(endpoint, "{item=home}", resolver); app.UseRouter(runRoute); //方式四 var runRoute1 = new Route(endpoint, "{item=home}", resolver); var otherRoute = new Route(endpoint, "other/{item=other_home}", resolver); var routeCollection = new RouteCollection(); routeCollection.Add(runRoute1); routeCollection.Add(otherRoute); app.UseRouter(routeCollection); //方式五 var routeBuilder = new RouteBuilder(app) { DefaultHandler = endpoint, }; routeBuilder.MapRoute("default", "{item=home}"); routeBuilder.MapRoute("other", "other/{item=other_home}"); app.UseRouter(routeBuilder.Build()); //方式六,改写handler var myendpoint = new MyRouteHandler(); var myrouteBuilder = new RouteBuilder(app) { DefaultHandler = myendpoint, }; myrouteBuilder.MapRoute("default", "{controller=Home}/{action=Index}/{id?}"); app.UseRouter(myrouteBuilder.Build()); }

自定义hanlder

public class MyRouteHandler : IRouter    {        public VirtualPathData GetVirtualPath(VirtualPathContext context)        {            return null;        }        public Task RouteAsync(RouteContext context)        {            context.Handler = (c) =>            {                var printStr = $"controller:{c.GetRouteValue("controller")}," +                $"action:{c.GetRouteValue("action")},id:{c.GetRouteValue("id")}";                return c.Response.WriteAsync(printStr);            };            return Microsoft.AspNetCore.Routing.Internal.TaskCache.CompletedTask;        }    }

 

转载于:https://www.cnblogs.com/airven/p/5948774.html

你可能感兴趣的文章
【人物志】美团前端通道主席洪磊:一位产品出身、爱焊电路板的工程师
查看>>
一份关于数据科学家应该具备的技能清单
查看>>
机器学习实战_一个完整的程序(一)
查看>>
Web框架的常用架构模式(JavaScript语言)
查看>>
如何用UPA优化性能?先读懂这份报告!
查看>>
这些Java面试题必须会-----鲁迅
查看>>
Linux 常用命令
查看>>
CSS盒模型
查看>>
ng2路由延时加载模块
查看>>
使用GitHub的十个最佳实践
查看>>
脱离“体验”和“安全”谈盈利的游戏运营 都是耍流氓
查看>>
慎用!BLEU评价NLP文本输出质量存在严重问题
查看>>
JAVA的优势就是劣势啊!
查看>>
ELK实战之logstash部署及基本语法
查看>>
帧中继环境下ospf的使用(点到点模式)
查看>>
BeanShell变量和方法的作用域
查看>>
LINUX下防恶意扫描软件PortSentry
查看>>
由数据库对sql的执行说JDBC的Statement和PreparedStatement
查看>>
springmvc+swagger2
查看>>
软件评测-信息安全-应用安全-资源控制-用户登录限制(上)
查看>>