.NET Core中区域的使用

时间:2018-12-30 09:12:28

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

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

我喜欢这些区域,但是我不喜欢我的访客网址看起来像这样的事实:https://localhost:5001/Public/Homehttps://localhost:5001/Public/Catalogue,等等。

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

除了网站的访问者部分之外,是否有其他地方可以使用?

1 个答案:

答案 0 :(得分:1)

我不建议您删除URL中的“区域名称”,因为当您在不同区域中使用相似的页面名称时,路由将无法正常工作!例如如果您有两个区域“ public”和“ private”,并且都包含名称相似的“ Index”页面,则很可能会看到一个错误,即有多个页面使用同一路由,这就是为什么存在区域的原因。

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

@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