Вот рабочая демонстрация, как показано ниже:
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://i.stack.imgur.com/GveiJ.gif)
Ссылка:
https://docs.microsoft.com/en-us/aspnet/core/razor-pages/razor-pages-conventions?view=aspnetcore-3.1#model -согласования