2

EPiServer 7 の編集モードで使用するモバイル チャネルをセットアップしようとしています。

このリンクをたどっています

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 DisplayChannelService() によって作成されたものに置き換えようとしました。

ホームページを閲覧するだけで問題なく動作しますが、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 の両方がその場所に存在しますか?

4

1 に答える 1

1

それを機能させることができました。

_ViewStart.cshtml に次のセットがあることを発見しました。

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

そのため、を削除したところDisplayModeProvider.Instance.RequireConsistentDisplayMode = true;、動作するようになりました。

ホームページにはモバイルとデスクトップの両方のビューがあり、モバイルとデスクトップのレイアウトもあるのに、なぜこれが問題を引き起こしたのかわかりませんか?

于 2013-05-24T18:55:58.467 に答える