• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

在ASP.NET Core中构建路由的5种方法 - 张行行

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在ASP.NET Core中构建路由的5种方法

原文链接 :https://stormpath.com/blog/routing-in-asp-net-core 

在ASP.NET Core中构建路由的5种方法 

 

 

by Team Stormpath | August 17, 2016 | 

 

在软件开发中,路由用于将所有传入请求映射到处理程序,并生成响应中使用的URL。在ASP.NET Core中,路由已经从根本上重写了。以前,使用MVC和Web API进行路由非常相似,但两者都使用不同的框架(和代码)来执行相同的操作。一个重要的区别是Web API默认支持RESTful路由。例如,如果一个控制器的操作方法名称开头Post,那么调用一个HTTP Post默认情况下会调用该方法。 

由于微软决定重建和统一路由框架,现在适用于MVC,也适用于Web API。然而,在我们深入了解如何构建路由之前,让我们回顾一下为什么路由对您的应用程序非常重要。 

为什么路由? 

SEO友好 

REST式配置的路由有助于您的内容的搜索引擎优化(SEO)。网站的网址是影响网站排名的首要标准之一。通过将www.yourwebsite.com/articles/show/123转换为www.yourwebsite.com/how-to-peel-potatoes,您鼓励搜索引擎对与“how to peel potatoes.”有关的关键语句进行排名。 

此外,如果您的网址具有更强的描述性,则用户可以更轻松地预测内容,从而增加页面上的时间,这也会影响SEO和整体页面权限。 

网址不需要映射文件 

没有路由,传入的请求将被映射到物理文件。通过路由,我们可以完全控制请求,使我们能够决定在某个HTTP请求进入时我们执行的操作和控制器。 

长URL和文件扩展名可以省略 

在许多参数和过滤器都在使用的情况下,路由有助于缩短URL。通过消除文件扩展名,我们可以隐藏我们正在工作的环境。 

那么,我们如何利用这些好处呢?让我们看看您可以在ASP.NET Core应用程序中构建路由的五种方法。 

1.创建默认路由 

您可以按照惯例在您的项目Startup类中定义默认路由。 

 

1 

2 

3 

4 

5 

6 

7 

8 

9 

10 

11 

12 

13 

14 

15 

16 

17 

18 

public class Startup 

{ 

    public void ConfigureServices(IServiceCollection services) 

    { 

        services.AddMvc(); 

    } 

  

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 

    { 

        app.UseMvc(routes => 

        { 

            routes.MapRoute( 

                name: "default", 

                template: "  {controller=Home}/{action=Index}/{id?}"); 

        }); 

    } 

} 

通过以上,我们确保我们项目中的基本配置存在于Controller + Action + ID(可选)路径的标准MVC模式中。你也可以像这样声明路由模式: 

 

1 

2 

3 

4 

5 

6 

routes.MapRoute( 

    name: "default_route", 

    template: "{controller}/{action}/{id?}", 

    defaults: new { controller = "Home", action = "Index" } 

); 

(这是我们用来在ASP.NET Core中进行路由的方式。) 

2.扩展默认路由 

一旦我们配置了默认路由,我们可能希望通过根据特定需求添加自定义路由来扩展它。为此,我们可以使用该MapRoute()方法添加配置。 

 

1 

2 

3 

4 

5 

6 

7 

8 

9 

10 

11 

12 

13 

14 

app.UseMvc(routes => 

{ 

    //New Route 

    routes.MapRoute( 

       name: "about-route", 

       template: "about", 

       defaults: new { controller = "Home", action = "About" } 

    ); 

  

routes.MapRoute( 

    name: "default", 

    template: "{controller=Home}/{action=Index}/{id?}"); 

}); 

我们添加了一条额外的路线,通过路线授予对主控制器上“关于”操作的访问权限/about。由于默认模式路由仍然存在,因此我们也可以使用常规/home/about路由访问“关于”页面。 

3.使用属性 

您还可以使用控制器中的属性和操作来配置路由。 

 

1 

2 

3 

4 

5 

6 

7 

8 

9 

10 

11 

12 

13 

14 

15 

16 

[Route(


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NETHttpModule——原理发布时间:2022-07-10
下一篇:
asp.net读写xml发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap