Диалог добавления страницы бритвы не позволяет использовать дефисы в имени файла - PullRequest
0 голосов
/ 28 октября 2018

Из приведенных ниже ссылок кажется, что существует постоянная проблема с дефисами в именах файлов для Razor Pages. Приведенные ниже ошибки были задокументированы как исправленные, но Add Razor Page по-прежнему не допускает дефисы, как показано ниже: Error message

Мой специалист по SEO настаивает на том, что в именах файлов должны быть дефисы, и если я позже переименую файл, чтобы вставить дефис, он, похоже, будет работать нормально.

Правильно ли я считаю, что это ошибка? Куда мне сообщить об этом?

Ссылки:

https://github.com/aspnet/Mvc/issues/6296

RazorPages с именами файлов, которые содержат дефис, приводящий к разрыву IntelliSense

Использование тире / дефиса в имени файла Razor Page - компилируется, но VS показывает ошибки

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Вы можете использовать директиву @page, чтобы явно указать имя маршрута.

@page "/multi-named/edit-me"
@model EditMeModel
@{
}
0 голосов
/ 28 октября 2018

Вместо того, чтобы пытаться бороться с ошибкой или чем-то еще, вы можете использовать подчеркивание, куда должен идти дефис, а затем использовать реализацию 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

...