2015-06-03 3 views
0

В Sitecore 8 в настоящее время мы создаем пункты меню, используя метод @RenderLink Glass Mapper. Мы установили атрибут «languageEmbedding» поставщика LinkManager «никогда», но стекло, похоже, игнорирует этот параметр.Glass Mapper RenderingLink встраивание языка

$RenderLink(mi, x => x.Link_URL); 

создает

http://domain.com/en/topics/xxxx 

Похоже, вы можете сделать это на основе за единицу (http://blog.falafel.com/sitecore-removing-languages-from-urls/), выполнив следующие действия:

Sitecore.Links.LinkManager.GetItemUrl(item, 
new Sitecore.Links.UrlOptions 
{ 
    AlwaysIncludeServerUrl = true, 
    LowercaseUrls = true, 
    LanguageEmbedding = Sitecore.Links.LanguageEmbedding.Never 
}); 

, но я не был в состоянии фигуры как это сделать в стекле.

Кто-нибудь знает, как удалить «/ en /» (язык) из ссылки при использовании стекла для рендеринга?

+1

GlassMapper должны соблюдать параметры LinkManager, установленные в конфигурации, я никогда не имел проблемы с ним так, убедитесь, что ваши конфиги являются GoldenGrahamns указывают. Если вы добавили свой собственный LinkProvider, называемый чем-то иным, чем 'sitecore', убедитесь, что вы также правильно установили атрибут defaultProvider. – jammykam

ответ

0

Двойная проверка чего-то еще не отменяет эту настройку. Я бы сделал /sitecore/admin/showconfig.aspx, чтобы убедиться, что нет другого linkprovider, который исправил файл web.config.

3

Вы можете установить на атрибут SitecoreField вашей модели

[SitecoreField(UrlOptions = SitecoreInfoUrlOptions.LanguageEmbeddingNever|SitecoreInfoUrlOptions.AlwaysIncludeServerUrl)] 
    public virtual Link Link { get; set; } 
+0

Это поставило меня на правильный путь. Мы также используем TDS, поэтому мы закончили тем, что написали метод расширения, содержащий указанные атрибуты. Нам также пришлось добавить еще один атрибут, который мы нашли сгенерированным.cs. '[SitecoreField (IMenu_ItemConstants.Link_URLFieldName, UrlOptions = SitecoreInfoUrlOptions.LanguageEmbeddingNever | SitecoreInfoUrlOptions.AlwaysIncludeServerUrl)]' –

+0

Как jammykam указал, вам не нужно делать это и поставщик ссылка должна соблюдаться. –

0

согласен с остальными. Проверьте showconfig. В противном случае выполните поиск всех файлов конфигурации. В моем конкретном случае я обнаружил, что Sitecore.Ecommerce.config исправлял linkmanager и не показывал в showConfig, что он это делает. После обновления этой конфигурации менеджер ссылок функционировал нормально.

Примечание: Sitecore 8,0-u3, Active Commerce 3,2, SES 2,2

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