Многопользовательская бритва - PullRequest
0 голосов
/ 14 февраля 2019

В поисках простого способа создания мультитенантной бритвенной страницы.Нужно, чтобы шаблон URL был похож на \{Tenant}\{Page} для всех страниц в области.Довольно просто добавить параметр маршрута в конце с помощью соглашений RazorPagesOptions.Как вы добавляете параметр в начале?

1 Ответ

0 голосов
/ 14 февраля 2019

Вы можете использовать Интерфейс IPageRouteModelConvention , чтобы поставить перед каждым маршрутом префикс с параметром маршрута, представляющим арендатора.Создайте класс, который реализует интерфейс, а затем переопределите метод 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());
})
...