【问题标题】:Usage of areas in .NET core.NET core 中区域的使用
【发布时间】:2018-12-30 09:12:27
【问题描述】:

我正在开发一个 ASP.NET MVC Core 应用程序。在这个应用程序中,我正在使用区域。我现在有多个区域:管理员(用于网站维护)、身份(用于身份剃须刀页面)和公共(用于访问者)。

我喜欢这些区域,但我不喜欢我需要访问者网址的事实:https://localhost:5001/Public/Homehttps://localhost:5001/Public/Catalogue 等。

我更喜欢https://localhost:5001/Homehttps://localhost:5000/Catalogue 等网址。

除了网站的访问者部分之外,我可以使用哪些区域?

【问题讨论】:

    标签: asp.net-core routes .net-core


    【解决方案1】:

    我不建议去掉url中的“区域名称”,因为当你在不同区域有相似的页面名称时,路由将无法正常工作!例如如果您有两个“公共”和“私人”区域,并且都包含具有相似名称“索引”的页面,您很可能会看到一个错误,即有多个页面使用相同的路由,这就是存在区域的原因。

    回到您的问题,如果您使用的是 razor 页面,您可以将路由模板直接添加到 razor 页面的顶部:

    @page "/catalog"
    

    或者如果你有参数:

    @page "{id}"
    @Url.Page("/catalog")
    

    如果你使用 MVC,那么你可以使用属性路由并将 AreaPrefix 保持为空:

    [RouteArea("Public", AreaPrefix = "")]
    [RoutePrefix("catalog")]
    public class CatalogsController : Controller
    

    您可以在此处的文档中阅读有关路由的更多信息:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-2.2

    【讨论】:

      猜你喜欢
      • 2020-10-04
      • 2022-11-03
      • 2018-06-24
      • 1970-01-01
      • 1970-01-01
      • 2016-07-31
      • 2016-10-07
      • 2021-03-03
      • 2019-04-29
      相关资源
      最近更新 更多