ASP.NET Core中使用默认MVC路由的配置
asp.net core里route这块的改动不大,只是一些用法上有了调整,提供了一些更加简洁的语法。
而对于自定义路由的支持当然也是没有问题的,这个功能应该是从mvc1.0版本就已经有这个功能。
先看看asp.net core里面实现默认mvc路由的配置方式
通常情况下,在使用mvc项目的时候,默认的路由就足够了,就是常见的通过controller和action获取具体的方法的方式。
从一个最基本的项目开始,执行以下步骤,就可以使得项目支持mvc路由
1.创建一个空白的asp.net core(empty) web项目
2.打开project.json,在”dependencies”节点下增加如下依赖项目
"microsoft.aspnetcore.mvc": "1.0.0"
保存之后,项目会自动restore packages到本地
3.加入默认mvc路由配置
打开startup.cs文件
在configureservices方法,加入如下代码
services.addmvc();
这个扩展方法把mvc的一些服务都注入到容器中
在configure方法,注释最后兜底的那个“hello world”语句,这个语句的作用是不管什么请求都它来负责。
然后在configure方法加入如下代码
app.usemvcwithdefaultroute();
这个扩展方法实际上使用了一个middleware,默认的url template跟之前mvc版本的一致,上述代码等同于以下效果
app.usemvc(routes => { routes.maproute( name: "default", template: "{controller}/{action}/{id?}", defaults: new {controller = "home", action = "index"} ); });
最终的startup.cs代码如下
public class startup { public void configureservices(iservicecollection services) { services.addmvc(); } // this method gets called by the runtime. use this method to configure the http request pipeline. public void configure(iapplicationbuilder app, ihostingenvironment env, iloggerfactory loggerfactory) { loggerfactory.addconsole(); if (env.isdevelopment()) { app.usedeveloperexceptionpage(); } //app.run(async (context) => //{ // await context.response.writeasync("hello world!"); //}); app.usemvcwithdefaultroute(); } }
4.到此配置已经完成,但是运行站点直接显示404,没显示hello world说明已经生效了,只是empty的项目没有controller,那么定义一个controller吧。
手动在项目根目录创建controllers目录,然后新建一个controller,名字为homecontroller,然后直接运行网站(应该刷新一下就可以了)。
站点继续提示错误,但不是404了,是提示找不到index这个view。
继续在项目根目录创建views目录,然后在views目录下新建一个home目录,在home目录新建一个index.cshtml,填写一些内容,再次刷新就可以了。
当然这是最基本的配置,比如要进一步支持在cshtml里面实现智能感知,支持静态文件路由等还得加入更多的依赖和配置。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 智能锁真的安全吗?德施曼教你这么看!
推荐阅读
-
Jeditable - jQuery就地编辑插件在ASP.NET MVC 中的使用 JeditablejQuery就地编辑插件ASP.NET MVC使用
-
Datatables.js在asp.net mvc5中的使用
-
ASP.NET Core MVC 中的 Model 模型
-
Datatables 在asp.net mvc中的使用
-
使用asp.net MVC4中的Bundle遇到的问题及解决办法分享
-
使用asp.net MVC4中的Bundle遇到的问题及解决办法分享
-
ASP.NET中CKEditor与CKFinder的配置使用
-
asp.net中的web api使用(非mvc程序)
-
ASP.NET中CKEditor与CKFinder的配置使用
-
ASP.NET core Web中使用appsettings.json配置文件的方法