Почему мои маршруты в Sitecore 9 не работают? - PullRequest
0 голосов
/ 19 ноября 2018

Попытка применить пользовательскую маршрутизацию в Sitecore 9, используя следующую документацию: https://doc.sitecore.net/sitecore_experience_platform/developing/developing_with_sitecore/mvc/use_mvc_routing. Но не повезло, в конечном итоге на 404 странице. Кажется, что маршрут зарегистрирован, но что-то не так с параметрами:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapRoute(
        name: "Product",
        url: "product-offering/{category}/{product}",
        defaults: new { scItemPath = "product-offering/{product}", scKeysToIgnore = new string[] { "category" } });
}

Возможно, кто-то сталкивался с этой проблемой в Sitecore 9, потому что этот фрагмент кода работает для Sitecore 8.2.

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

В моем случае проблема заключается в тире в названии элементаВ файле "App_Config / Sitecore.config" есть следующая конфигурация:

replace mode = "on" find = "" replaceWith = "-« .

Как видите, имена намеренно изменены.Если этот параметр включен, запрещается иметь элементы содержимого с именами, которые содержат тире.Ну, они разрешены, но это бессмысленно:

1) Допустим, у вас есть элемент под названием «предложение продукта» с тире в его названии.

2) Когда генерируется ссылкадля этого элемента все пробелы заменяются тире в соответствии с вышеуказанным параметром, поэтому URL становится: http://hostname/product-offering (в этом случае остается то же имя).

3) Когда такой URLДля извлечения соответствующего элемента содержимого запрашивается преобразование противоположного имени - тире заменяются пробелами в соответствии с вышеуказанными настройками.Название «предложение продукта» становится «предложением продукта». 4) Нет элемента с названием «предложение продукта», поэтому получено 404.

Таким образом, я вижу два варианта решения описанного поведения:

-> либо замените тире пробелами в именах

-> или закомментируйте вышеупомянутый параметр Sitecore.config.

0 голосов
/ 20 ноября 2018

В Sitecore не используется файл visual studio route.config, поскольку в sitecore все маршруты определяются в терминах конвейера в файле web.config в папке Views.Надеюсь, этот ответ поможет вам.

...