asp.net core mvc中控制器和路由是什么


这篇文章主要讲解了“asp.net core mvc中控制器和路由是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“asp.net core mvc中控制器和路由是什么”吧!先在Controllers目录下添加一个类,名叫:访问地址:如果不出意外的话,你应该能看到网页上的”你好”两个字。再新建一个类:结合两个不常规的控制器类,让我们初窥asp.net core MVC是如何识别控制器的。这 香港云主机正是我之前说的,约定优于配置最好的体现。这个哲学最早也是为MVC提出来的,后来被.net framework引申到各个方面。asp.net core mvc识别控制器,会在项目中发现 以Controller结尾的公开类或者继承自Controller的公开类,并将这些类标记为控制器。当接到用户或者界面转交的请求时,程序从请求路径中解析出控制器名称,然后寻找 Controller 或者 : Controller 的类。在默认情况下,一个访问URL会在程序中解析成如下格式:在上文中,我们知道了控制器的解析规则,那么现在看一下Action的解析规则:在DemoController中添加如下方法:重新启动,后依次访问如下地址:然后可以看到,TestInt、TestObject以及TestPublic均能正常访问,但TestProtect和TestPrivate都提示找不到网页或无法访问。可以看到,对于程序而言,Action就是控制器类里的公开类方法,与方法的返回值无关。也就是说,程序会找到 XXXController 或者名为XXX但继承了Controller的类作为XXX的控制器,然后继续在这个类里寻找到Action,如果没有找到就会返回404的请求。在第一节中,我们介绍了一下asp.net core mvc如何寻找控制器和Action,那这一节将介绍程序如何从请求链接中解析出控制器和Action的名称,也就是路由映射。路由(Routing)负责匹配传入的HTTP请求,然后将这些请求发送给应用的可执行终结点。终结点是应用的可执行请求处理代码单元,也就是我们控制器里的方法(Action)。对于所有的asp.net core模板都包括生成在代码中的路由。通常,我们要求路由在Startup.Configure方法中进行配置。注意,Startup类里有且只有一个Configure方法,不能出现其重载版本。该方法的声明一般情况如下:如果想要设置路由,需要先注明项目启用路由:然后使用如下方法配置路由:通常对于mvc项目而言,我们一般使用如下方式配置路由:这行代码的意思是:创建一个名字为 default 的映射控制器的路由,映射规则为 {controller}/{action}/{id?},也就是第一个为控制器,第二个为Action,第三个是ID,其中ID可以不存在,当Action无法从请求地址中解析出来时默认为Index,控制器默认为Home。通过这个解析,我们可以得知 我们之前访问的是哪个控制器里的什么方法来处理了——HomeController.Index。那么我们修改一下HomeController.Index来验证一下,我们理解是否有误:重新运行程序,访问然后看到页面出现:测试字样,可以看到路由系统自动为我们补全了控制器名和action名。如果方法中出现参数,则自动按照参数名1=值1&参数名2=值2这种形式查看参数。Id为特殊的,会自动按照目录去映射。所以:是一个请求链接。那么,我们回过头来看一下声明路由的方法:默认情况下,我们不会设置 defaults、constraints、dataTokens,这三个参数都有含义,这里不对后两个做介绍,简单介绍一下第一个:在路由配置的方法里,添加以下内容:至此,我们没有创建名为DemoTest的控制器,但是我们在访问:仍然能得到响应,而且控制器被解析为Demo。这就是defaults的意义,路由在解析的时候,系统会把defaults中的值自动填充到路由连接中没有设置的值里。当我们设置多个路由的时候,路由系统会优先尝试匹配最容易解析的配置。比如说,当我们访问:的时候,路由系统会优先从名为test的配置表中解析,只有当无法从这里找到时才会从其他路由中解析。感谢各位的阅读,以上就是“asp.net core mvc中控制器和路由是什么”的内容了,经过本文的学习后,相信大家对asp.net core mvc中控制器和路由是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是开发云,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: Linux和Mac下怎么安装Redis数据

这篇文章主要讲解了“Linux和Mac下怎么安装Redis数据库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux和Mac下怎么安装Redis数据库”吧!安装Redisbrew install redis…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 09/04 20:00
下一篇 09/04 20:00

相关推荐