0x00 路由在MVC中起到的作用
前段時(shí)間一直忙于別的事情,終于搞定了繼續(xù)學(xué)習(xí).NetCore。這次學(xué)習(xí)的主題是MVC中的路由。路由是所有MVC框架都會(huì)實(shí)現(xiàn)的一個(gè)組件,核心功能就是根據(jù)接收到的Http請(qǐng)求中的Path(對(duì)于http://localhost/Home/Index/12?test=555 來(lái)說(shuō),http是協(xié)議,localhost是域,Home/Index/12是Path,test=555是參數(shù))部分,依次和路由規(guī)則集合中的規(guī)則進(jìn)行匹配,匹配成功后由對(duì)應(yīng)的Controller中的對(duì)應(yīng)Action進(jìn)行Http請(qǐng)求的處理。匹配不到則返回404錯(cuò)誤。
大多數(shù)MVC框架路由規(guī)則的配置都大同小異,一般都是通過(guò)模板的方式來(lái)配置路由規(guī)則。有的還支持在Controller和Action上通過(guò)Attribute(Java中叫注解)進(jìn)行更細(xì)粒度的配置。
.NetCore MVC支持通過(guò)全局的路由模板配置路由規(guī)則,也支持在Controller和Action上通過(guò)Attribute進(jìn)行細(xì)粒度的路由配置。下面先說(shuō)一下在Startup.cs中配置全局路由規(guī)則。
0x01 在Startup.cs中配置路由
所謂的路由的模板就是一串字符串,當(dāng)接收到Http請(qǐng)求后取出其中的Path部分,和模板進(jìn)行對(duì)照,如果匹配模板則路由到對(duì)應(yīng)的Controller和Action進(jìn)行處理。我們可以在Startup.cs文件中的Configure方法中,添加MVC功能時(shí)進(jìn)行路由配置,例如:
app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller}/{action}/{id}");