寻找一种简便的方法来构建多租户剃须刀页面。寻找一个区域中所有页面的网址格式类似于\{Tenant}\{Page}
。通过RazorPagesOptions约定在末尾添加路由参数相当容易。您如何在开始时添加参数?
答案 0 :(得分:0)
您可以使用IPageRouteModelConvention interface为每个路由添加代表租户的路由参数的前缀。创建一个实现该接口的类,然后重写Apply
方法,如下所示(未经测试):
public class CustomPageRouteModelConvention : IPageRouteModelConvention
{
public void Apply(PageRouteModel model)
{
foreach (var selector in model.Selectors.ToList())
{
selector.AttributeRouteModel.Template = "{tenant}/" + selector.AttributeRouteModel.Template ;
}
}
}
然后在ConfigureServices
中注册您的实现:
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.Add(new CustomPageRouteModelConvention());
})