2013-05-24 3 views
2

Попытка установки Мобильного канала для использования в режиме редактирования в EPiServer 7.EPiServer 7 MVC IDisplayModes

Been этой ссылке

http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-CMS/7/Content/Display-Channels/

Создан модуль инициализации

[InitializableModule] 
[ModuleDependency(typeof(EPiServer.Web.InitializationModule))] 
public class DisplayModesInitialization : IInitializableModule 
{ 
    public void Initialize(InitializationEngine context) 
    { 
     if (context.HostType == HostType.WebApplication) 
     { 
      System.Web.WebPages.DisplayModeProvider.Instance.Modes.RemoveAt(0); 
      context.Locate.DisplayChannelService() 
           .RegisterDisplayMode(new DefaultDisplayMode(RenderingTags.Mobile) 
           { 
            ContextCondition = (r) => r.Request.Browser.IsMobileDevice 
           });     
     } 
    } 

    public void Preload(string[] parameters) { } 

    public void Uninitialize(EPiServer.Framework.Initialization.InitializationEngine context) { } 
} 

Как вы можете видеть, я попытался удалить существующий режим отображения «Мобильный», который существует, чтобы его заменили на тот, который был создан через EPiServer Displ ayChannelService().

Просто просматривающие на главную страницу работает нормально, но когда я заставить UserAgent быть мобильным браузером он попал в правильный вид ... т.е. Index.mobile.cshtml

Однако, как представляется, все еще ищет для _Layout.cshtml вместо _Layout.mobile.cshtml и даже при этом он не находит его.

The file "~/Views/Shared/_Layout.cshtml" could not be rendered, because it does not exist or is not a valid page. 

Любой успешно создать мобильный IDisplayMode для MVC через EPiServer DisplayChannelService?

Кроме того, если я точно установить расположение в мобильном режиме

@{ 
    Layout = "~/Views/Shared/_Layout.mobile.cshtml"; 
} 

Если не удается найти, что также?

The file "~/Views/Shared/_Layout.mobile.cshtml" could not be rendered, because it does not exist or is not a valid page. 

Как _Layout, так и _Layout.mobile DO существуют в этом месте?

ответ

1

Удалось заставить его работать.

Обнаруженный что _ViewStart.cshtml имел следующий набор:

@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
    DisplayModeProvider.Instance.RequireConsistentDisplayMode = true; 
} 

Так что я удалил DisplayModeProvider.Instance.RequireConsistentDisplayMode = true; и теперь он работает.

Не знаете, почему это вызвало проблему, поскольку на главной странице есть как мобильные, так и настольные виды, а также макеты мобильных и настольных компьютеров?

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