URL страниц бритвы в области с префиксом - PullRequest
1 голос
/ 26 апреля 2019

Итак, я много искал здесь по нескольким темам и изучал razorpages. но я не могу что-то понять.

так что на моей установке у меня есть область

Identity
    /pages
    /account
    /login
services
    .AddMvc(cfg =>
    {
        cfg.UseCentralRoutePrefix(new RouteAttribute(path));
    })

на моих контроллерах это работает как шарм. Но, похоже, на моих страницах с бритвой это не приветствуется.

так что теперь я должен написать это в моем * .cshtml.

@page "~/PREFIX/identity/account/login2"

но я не хочу писать это на всех своих страницах. Могу ли я сделать это легко с помощью бритвенных соглашений в области?

.AddRazorPagesOptions(options => {...}); ???

1 Ответ

2 голосов
/ 26 апреля 2019

Razor Pages настраивается с помощью соглашений и не зависит от прикладной модели , которая используется в 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/ к каждому.

...