所以我在这里查看了很多主题并学习了页面。但我无法弄清楚。
所以在我的设置中我有区域
Identity
/pages
/account
/login
services
.AddMvc(cfg =>
{
cfg.UseCentralRoutePrefix(new RouteAttribute(path));
})
在我的 Controller 上,这就像一个魅力。但在我的 Razor 页面上,这似乎并没有得到尊重。
所以现在我必须把它写在我的 *.cshtml 中。
@page "~/PREFIX/identity/account/login2"
但我不想在我的所有页面上都写这个。 我可以通过在某个区域上进行 Razor 约定来轻松完成此操作吗?
.AddRazorPagesOptions(options => {...}); ???
最佳答案
Razor Pages 路由通过 conventions 配置并且不受 application model 的影响MVC 中使用的。为了应用影响区域中所有页面的自定义约定,您可以使用如下所示的目标区域和根文件夹:
services.AddMvc()
.AddRazorPagesOptions(o =>
{
o.Conventions.AddAreaFolderRouteModelConvention("Identity", "/", pageRouteModel =>
{
foreach (var selectorModel in pageRouteModel.Selectors)
selectorModel.AttributeRouteModel.Template = "PREFIX/" + selectorModel.AttributeRouteModel.Template;
});
});
此示例为 Identity
区域的根(使用 /
)配置约定,该约定会迭代所有现有模板并添加 PREFIX/
每个。
关于c# - 带前缀的区域中的 razor 页面 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55873338/