Настройка шаблонов маршрутов для страницы Razor¶
По умолчанию шаблоны маршрута основаны на пути к файлу, но окончательный шаблон можно настроить или целиком переопределить.
Компонент маршрутизации анализирует шаблон маршрута, разделяя его на несколько сегментов, обычно разделяемых символом /. Вот пример шаблона: product/{category}/{name}. Здесь
product— это литеральное значение{category},{name}— параметры маршрута
Литеральные значения должны без учёта регистра совпадать с URL-адресом запроса. Например, если есть шаблон about/contact, то ему будет соответствовать ТОЛЬКО адрес с путём about/contact.
Сегменты, соответствующие параметрам запроса, могут быть разными, но по прежнему соответствовать шаблону. Например, шаблону {category}/{name} соответствуют пути /bag/rucksack-a и /shoes/black-size9. При этом пути /socks/ и trousers/mens/formal соответствовать не будут — не совпадает число сегментов.
Значения, связанные с параметрами фиксируются во время маршрутизации. Это значения маршрута, определяющие поведение страницы Razor, например, привязку модели.
Добавление сегмента в шаблон маршрута¶
Настройка шаблона маршрута страницы Razor производится через изменение директивы @page в верхней части .cshtml файла. По умолчанию, шаблон маршрута, указанный в директиве, добавляется в конец шаблона по умолчанию. Например, для страницы pages/Privacy.cshtml изменяем директиву следующим образом:
для получения шаблона маршрута
privacy/extra. Чтобы получить рассмотренный выше шаблон products/{category}/{name}, нужно указать параметры в директиве @page:Полная замена шаблона маршрута¶
Если мы хотим полностью заменить шаблон маршрута, нужно использовать префикс / в директиве @page. Так, директива @page "/{category}/{name}" страницы Products.cshtml изменит шаблон маршрута этой страницы на {category}/{name}.
Можно сказать, что шаблоны в директиве @page с префиксом / являются абсолютными шаблонами, тогда как шаблоны без префикса — относительными.
Отметим, что при настройке шаблона маршрута для страницы Razor шаблон по умолчанию становится недействительным.
Дата создания : 22 сентября 2022 г.