因此,我在这里的许多主题和学习剃须刀的页面上都非常关注。但我无法弄清楚。
所以在我的设置中我有区域
Identity
/pages
/account
/login
services
.AddMvc(cfg =>
{
cfg.UseCentralRoutePrefix(new RouteAttribute(path));
})
在我的控制器上,它就像一个符咒。但是在我的剃须刀页面上,这似乎没有兑现。
所以现在我必须将其写在我的* .cshtml中。
@page "~/PREFIX/identity/account/login2"
但是我不想在我所有的页面上写这个。 我可以在某个区域使用剃刀惯例轻松做到这一点吗?
.AddRazorPagesOptions(options => {...}); ???
答案 0 :(得分:2)
Razor Pages路由是通过conventions配置的,不受MVC中使用的application model的影响。为了应用影响区域中所有页面的自定义约定,您可以使用以下内容来定位区域和根文件夹:
services.AddMvc()
.AddRazorPagesOptions(o =>
{
o.Conventions.AddAreaFolderRouteModelConvention("Identity", "/", pageRouteModel =>
{
foreach (var selectorModel in pageRouteModel.Selectors)
selectorModel.AttributeRouteModel.Template = "PREFIX/" + selectorModel.AttributeRouteModel.Template;
});
});
此示例为/
区域的根(使用Identity
)配置了一个约定,该约定遍历所有现有模板并将PREFIX/
添加到每个模板中。