ASP.NETCore中使⽤默认MVC路由的配置mvc的controller
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⽬录新建⼀个Ind
ex.cshtml,填写⼀些内容,再次刷新就可以了。
当然这是最基本的配置,⽐如要进⼀步⽀持在cshtml⾥⾯实现智能感知,⽀持静态⽂件路由等还得加⼊更多的依赖和配置。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论