ASP.NET Core中命名路由的用途是什么

时间:2019-05-13 22:47:41

标签: asp.net-core-mvc asp.net-core-2.0 asp.net-mvc-routing asp.net-core-2.1

在asp.net core 2.2中,一个使用区域,控制器和视图的典型Web应用程序包含以下内容:

  • 区域文件夹结构。

  • 装饰有[Area]属性的控制器,用于将控制器与区域相关联

     [Area("Products")]
     public class ProductsController : Controller
     {
     }
    
  • 已将区域路由添加到启动

    app.UseMvc(routes =>
    {
      routes.MapRoute(
        name: "areas",
        template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
    
      routes.MapRoute(
         name: "default",
         template: "{controller=Home}/{action=Index}/{id?}");
    });
    

    以上配置适用于
        ~/products/search
        ~/services/billing ...其他区域也是如此。

上述路由配置负责所有区域。

那么创建命名路由有什么用。 (如下所示)我们将在哪里使用它?每次添加/删除区域都会增加路由更新的开销吗?

app.UseMvc(routes =>
{
    routes.MapAreaRoute(
        name: "MyAreaProducts",
        areaName:"Products",
        template: "Products/{controller=Home}/{action=Index}/{id?}");

    routes.MapAreaRoute(
        name: "MyAreaServices",
        areaName: "Services",
        template: "Services/{controller=Home}/{action=Index}/{id?}");

    routes.MapRoute(
       name: "default",
       template: "{controller=Home}/{action=Index}/{id?}");
 });

0 个答案:

没有答案