任务30:RoutingMiddleware介绍以及MVC引入
前面讲到app.Map的方式,它也可以实现路由
当我们的url是task的时候,就会执行里面的context的输出内容
app.Map("/task", taskApp=>{ taskApp.Run(async context=>{ await context.Response.WriteAsync("this is a task...."); }); });
taskapp,这里的applicationbuilder不是同一个,它是属于另外一套环境
一般不是比较复杂应用我们不会使用,并且它和路由的实现机制也不一样
介绍一般使用路由的方式
首先把middleware加进来。这里加的是依赖注入的配置
public void ConfigureServices(IServiceCollection services) { services.AddRouting(); }
前提条件必须引入命名空间
using Microsoft.AspNetCore.Routing;
app.UseRouter 它给我们一个RouterBuilder。
builder里面mapGet和mapPost等方法
app.UseRouter(builder=>builder.MapGet("action",async context=>{ await context.Response.WriteAsync("this is a action"); }));
执行dotnet run
http://localhost:5000/action
另外一种方式,直接传一个router给它
clear清空窗口
执行:dotnet run
同样的运行结果
http://localhost:5000/action
route的流程
core的源码
MVC中添加route
mvcrouterHandler