當您使用個人帳戶創建 ASP.Net Core Web 應用程式時,它會添加一個標識區域以及常規的 Pages 檔案夾。由于我不想在 Pages 檔案夾和 Area 檔案夾之間作業,我想創建一個主區域,我的應用程式的默認路由“/”將路由到該主區域。通過將其添加到 Program.cs,我能夠為 Index 頁面完成此操作:
builder.Services.AddRazorPages(options =>
{
options.Conventions.AddAreaPageRoute("Home", "/Index", "");
});
顯然,這只是處理單個索引頁面,但是如果我想要一個關于或隱私頁面,我還必須為它們添加 AreaPageRoutes。我嘗試了一些不同的東西AddAreaFolderRouteModelConvention,我不好意思在這里展示,但最終無法找到如何讓它發揮作用。
其次,將頁面的默認路由映射到特定區域是否可能?
uj5u.com熱心網友回復:
您可以使用PageRouteModelConvention 更改區域中頁面的屬性路由:
public class CustomPageRouteModelConvention : IPageRouteModelConvention
{
public void Apply(PageRouteModel model)
{
foreach (var selector in model.Selectors.ToList())
{
selector.AttributeRouteModel.Template = selector.AttributeRouteModel.Template.Replace("Home/", "");
}
}
}
通常,我對 Razor Page 應用程式中的區域的建議是不要使用它們。它們增加了額外的復雜性,根本沒有真正的收益。一旦你介紹了你自己的領域,你就已經發現自己在與框架作斗爭。QED。
唯一有實際用途的區域是在 Razor 類別庫中,因此在使用身份 UI 時,您必須與區域共存。但您不必使用身份 UI。您可以從中獲取代碼靈感,并在現有的 Pages 檔案夾中實作您自己的版本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/401355.html
上一篇:時間觸發器中IServiceProvider的ServiceLifetime是多少AzureFunctions
下一篇:以圖表形式顯示資料
