Вместо того, чтобы пытаться бороться с ошибкой или чем-то еще, вы можете использовать подчеркивание, куда должен идти дефис, а затем использовать реализацию IPageRouteModelConvention
, чтобы заменить подчеркивание дефисом в целях маршрутизации, чтобы ваш SEO-парень был доволен.
Подходящая реализация может выглядеть следующим образом:
public class HyphenPageRouteModelConvention : IPageRouteModelConvention
{
public void Apply(PageRouteModel model)
{
foreach (var selector in model.Selectors.ToList())
{
selector.AttributeRouteModel.Template = selector.AttributeRouteModel.Template.Replace("_","-");
}
}
}
Тогда вам просто нужно зарегистрировать это при запуске:
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.Add(new HyphenPageRouteModelConvention());
}).SetCompatibilityVersion(CompatibilityVersion.Latest);
Вы можете узнать больше об этом интерфейсе.здесь: https://www.learnrazorpages.com/advanced/custom-route-conventions