2016-11-02 15 views
0

У меня есть сайт Episerver с JobDetailsPageController с помощью метода Index, который принимает параметр jobId и создает представление с некоторыми подробностями об этой задаче. URL-адреса выглядят примерно так: https://hostname/<root-depending-on-site-tree>/jobs/?jobid=44.Преобразование параметров запроса в «довольно URL»

Я хотел бы иметь URL-адреса на форме .../jobs/manager-position-telco-44, существенно создавая пул названия задания и добавляя идентификатор. Я делал это в прошлом, используя стандартную маршрутизацию атрибутов ASP.NET MVC на сайте, не относящемся к Episerver, но EpiServer имеет собственную маршрутизацию, которую я не очень хорошо знаю, и can't figure out.

Кроме того, добавление строк без запроса после косой черты последовательно отправляет меня (неудивительно) на страницу 404, поэтому мне нужно как-то настроить это поведение. Мне нужно использовать стандартную маршрутизацию EpiServers, чтобы закончить ее с правой «родительской», но игнорировать последнюю часть (довольно бит).

Возможно ли создать такие URL-адреса на обычной странице в дереве страниц в EpiServer? Я понимаю, что можно создавать статические маршруты, но этот узел можно перемещать как любую другую страницу, поэтому я не могу избежать EpiServer.

ответ

3

См. this blog post. То, что вы ищете, это partial routing.

+0

Я уже сталкивался с ними обоими, но, когда вы спешите, огромное количество тестов в вашем поисковике быстро становится подавляющим, поэтому я действительно не смог их переварить достаточно быстро, чтобы убедиться, что это правильный материал , От случайного взгляда он, похоже, умеет делать трюк. Я дам вам аванс, если он мне поможет. Благодаря! Просто подскажите, когда дело доходит до правил этикета и правил публикации Stack Overflow: ответы на эту статью, а не на размещение контента в самом ответе, часто нахмурились, поскольку ссылка rot делает эти ответы менее ценными во времени. FYI :) – oligofren

+0

argh, auto-correct: «массовое количество тестов» = «массовые суммы текста» – oligofren

+0

Не уверен, что API был изменен, но вы ссылаетесь на документацию EPi9, несмотря на то, что вопрос помечен тегом 'episerver- 7'. Правильная ссылка для документации EPi7 находится здесь: http: //world.episerver.ком/документация/товары/Разработчики-Guide/EPiServer-CMS/7/Routing/Частичная маршрутизация/Частичная маршрутизация / –

1

@johan является правильным, частичная маршрутизация - один из способов сделать это. Просто хотел добавить другие возможные решения, которые могли бы или могли не соответствовать вашим потребностям.

Импорта данные как содержание

Вместо того, чтобы служить содержимое динамически, вы могли бы рассмотреть возможность импортировать вакансии из любого источника вы должны непосредственно в дереве содержимого в виде отдельных страниц ниже определенной корневой страницы. Это даст вам много преимуществ - страницы будут кэшироваться, они будут поддерживать несколько языков, редакторы будут видеть контент непосредственно на EPiServer CMS, данные могут быть скорректированы вручную и т. Д.

Это было бы хорошим решением, если ваши данные не часто меняются, и вам необходимо предоставить способ для редактора, чтобы создать новое объявление о работе вручную.

Реализовать у вас есть контент-провайдера

Другой способ, чтобы служить динамические данные EPiServer, чтобы написать свой собственный поставщик пользовательского контента. Вы можете найти документацию здесь: http://world.episerver.com/documentation/Items/Developers-Guide/Episerver-CMS/7/Content-Providers/Content-Providers/

Это решение требует большего количества кодировок и является более сложным, но оно также имеет некоторые преимущества. Если бы вы захотели, можно было бы не просто обслуживать контент из внешнего источника данных, но и обновлять эти данные, изменяя значения непосредственно в интерфейсе EPiServer.

Смежные вопросы