【问题标题】:What are the differences between app.UseRouting() and app.UseMvcWithDefaultRoute()?app.UseRouting() 和 app.UseMvcWithDefaultRoute() 有什么区别?
【发布时间】:2020-03-25 10:29:08
【问题描述】:

当我试图理解它们时,app.UseRouting()app.UseMvcWithDefaultRoute() 之间有什么区别?

【问题讨论】:

    标签: c# asp.net-core asp.net-core-mvc


    【解决方案1】:

    这个link 可能会对您有所帮助。基本上

    1. UseMvcWithDefaultRoute() 从 .Net core 1.0 开始存在
    2. UseRouting() 是在 .Net Core 3.0 中添加的,它添加了更多功能来处理自定义路由。

    我主要使用剃须刀页面的第一种方法。 您可以在给定链接中查看“端点路由与早期版本路由的差异”以获取更多信息。因此,最终决定是您要使用基本端点路由还是高级端点路由

    【讨论】:

    • Tnx 回答但 app.UseRouting() 和 services.AddControllersWithViews() 之间有什么区别?
    • AddControllersWithViews 是设置 mvc 的扩展类,它添加了对控制器、api 相关功能和视图的支持,但不支持页面,不支持路由。 UseRouting 是启用端点路由的路由中间件。所以即使你添加了AddControllersWithViews,你仍然需要配置路由。 .Net 核心是开源的,因此您可以从 link 中查看他们的所有代码
    【解决方案2】:

    UseRouting 是一种高级方法。它只是将请求匹配到端点。这通常后面跟着实际执行匹配端点的 useEndpoints()。它不一定表示路由和 MVC 之间的关系。

    UseMvcWithDefaultRoute 负责一切。它实际上是一种方便的方法:

    app.UseMvc(routes =>
    {
       routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
    });
    

    所以它严格来说是关于 MVC,它也遵循默认路由(例如 api/students/1)。没什么先进的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      • 2012-02-06
      • 2011-02-25
      • 2011-11-22
      • 2015-03-26
      相关资源
      最近更新 更多