Razor Routing путем вызова страницы с окончанием .cs html - PullRequest
0 голосов
/ 08 мая 2020

Razor направляет запросы из «/ mypage» в файл «mypage.cs html», но вызов веб-страницы напрямую через «/mypage.cshml» не будет перенаправлять в файл. Вместо этого будет выдана ошибка 404.

Можно ли дополнительно настроить это поведение? Так что можно вызвать файл mypage.cs html через

  • / mypage
  • / mypage.cs html

1 Ответ

1 голос
/ 12 мая 2020

Вот рабочая демонстрация, как показано ниже:

1. Соглашение о пользовательской модели:

public class GlobalTemplatePageRouteModelConvention: IPageRouteModelConvention
{
    public void Apply(PageRouteModel model)
    {
        var selectorCount = model.Selectors.Count;
        for (var i = 0; i < selectorCount; i++)
        {
            var selector = model.Selectors[i];
            model.Selectors.Add(new SelectorModel
            {
                AttributeRouteModel = new AttributeRouteModel
                {
                    Order = 1,
                    Template = selector.AttributeRouteModel.Template+".cshtml",
                }
            });
        }
    }
}

2. Зарегистрируйте GlobalTemplatePageRouteModelConvention в Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages().AddRazorPagesOptions(options =>
    {
        options.Conventions.Add(new GlobalTemplatePageRouteModelConvention());

    });
    //...
}

Результат:

enter image description here

Ссылка:

https://docs.microsoft.com/en-us/aspnet/core/razor-pages/razor-pages-conventions?view=aspnetcore-3.1#model -согласования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...