我知道有几个问题已经得到解答,但我没有找到针对我案例的具体内容。
我正在使用MVC4的移动功能。所以我创建了一个_layout.mobile.cshtml和相应的视图。
当我使用移动设备时,会发生上述错误。如您所见,它正在尝试显示常规_layout.cshtml而不是_layout.mobile.cshtml。所以我假设它也试图显示没有相关部分的视图(例如Index.mobile.cshtm)。基本上它是将常规布局与移动视图混合在一起。
这并不是一直发生的。如果我回收池,它会再次运行一段时间,然后突然之间它会再次出现错误,它将一直持续到我再次回收池。
在此之前有没有人见过这个问题可以解决一些问题?
由于 约翰
答案 0 :(得分:3)
在Views文件夹下的 _ViewStart.cshtml 中,将Layout值更改为自定义布局。我认为这可能会有所帮助..(确保您返回View而不是部分视图)
例如
@{
Layout = "~/Views/Shared/_layout.mobile.cshtml";
}
如果您想更改特定页面的布局,可以在页面顶部将其明确定义为页面指令。
答案 1 :(得分:3)
在原始布局文件“_LayoutHome.cshtml”中定义了一个未在新引导程序布局中定义的部分。
具体来说:@RenderSection("featured", required: false)
因此解决方案是将此部分添加到新布局(在原始布局中查找并粘贴)或者只是从index.cshtml中删除它。
答案 2 :(得分:2)
我也遇到了同样的问题
@section featured {
从视图
答案 3 :(得分:0)
另一种方法是在_ViewStart.cshtml页面中使用条件块。例如,您可能有两种布局,具体取决于设备常规用户。使用伪代码读取设备/浏览器类型位,它看起来像这样:
@{
if(userIsMobile)
{
Layout = "~/Views/Shared/_MobileLayout.cshtml";
}
else
{
Layout = "~/Views/Shared/_Layout.cshtml";
}
}
我用它来显示或隐藏不同类别用户所需的部分或菜单项;它应该适用于特定于设备的布局。
Joey Morgan