我正在开发ASP.NET MVC Core应用程序。在此应用程序中,我正在使用区域。我现在有多个领域:管理员(用于网站维护),身份(用于身份剃须刀页面)和公共(用于访问者)。
我喜欢这些区域,但是我不喜欢我的访客网址看起来像这样的事实:https://localhost:5001/Public/Home和https://localhost:5001/Public/Catalogue,等等。
我更喜欢https://localhost:5001/Home和https://localhost:5000/Catalogue等网址。
除了网站的访问者部分之外,是否有其他地方可以使用?
答案 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