尝试设置移动频道以在 EPiServer 7 的编辑模式下使用。
一直关注这个链接
创建了一个初始化模块
[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
通过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 都存在于那个位置吗?