带有前缀的区域中的剃刀页面 url
razor pages url in area with prefix
所以我在这里看了很多关于几个主题和学习razorpages。但我想不通。
所以在我的设置中我有区域
Identity
/pages
/account
/login
services
.AddMvc(cfg =>
{
cfg.UseCentralRoutePrefix(new RouteAttribute(path));
})
在我的控制器上,这非常有效。但在我的剃须刀页面上,这似乎没有得到尊重。
所以现在我必须在我的 *.cshtml 中写这个。
@page "~/PREFIX/identity/account/login2"
但我不想在所有页面上都写这个。
我可以在某个区域使用剃须刀公约轻松做到这一点吗?
.AddRazorPagesOptions(options => {...}); ???
Razor Pages 路由是通过 MVC 中使用的 conventions and is not affected by the 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/
。
所以我在这里看了很多关于几个主题和学习razorpages。但我想不通。
所以在我的设置中我有区域
Identity
/pages
/account
/login
services
.AddMvc(cfg =>
{
cfg.UseCentralRoutePrefix(new RouteAttribute(path));
})
在我的控制器上,这非常有效。但在我的剃须刀页面上,这似乎没有得到尊重。
所以现在我必须在我的 *.cshtml 中写这个。
@page "~/PREFIX/identity/account/login2"
但我不想在所有页面上都写这个。 我可以在某个区域使用剃须刀公约轻松做到这一点吗?
.AddRazorPagesOptions(options => {...}); ???
Razor Pages 路由是通过 MVC 中使用的 conventions and is not affected by the 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/
。