最近,我使用 MVC4 .mobile 视图添加了该网站的移动版本。我从 _Layout.mobile.cshtml 开始以与桌面版本非常相似的方式构建站点,它指向了专门为移动站点设计的正确脚本和 css。
发布网站后,我检查了一切是否正常,正如它设计的那样。但很快我就被告知该网站已损坏。在检查移动站点时,我注意到 _Layout.mobile.cshtml 已加载,但不是从 Home 控制器发送的 Index.mobile.cshtml,而是返回的是为桌面设计的标准 Index.cshtml。桌面索引文件也是使用移动 css 渲染的,这导致整个移动网站看起来非常混乱。附带说明一下,该站点的桌面版本没有发生任何变化。
重新发布解决了这个问题,但我也注意到有时它会恢复为显示正确的视图,即使在它坏了之后也没有重新发布。
我开始研究这个问题以及我偶然发现关于显示模式不起作用的讨论,例如: ASP.NET MVC 4 Mobile Display Modes Stop Working
使用已弃用的 NuGet 解决方案:http ://www.nuget.org/packages/Microsoft.AspNet.Mvc.FixedDisplayModes
我认为既然这个讨论是从一年前开始讨论早期版本的,它应该由最近的 MVC4 更新来修复。我当前的版本是 4.0.20710.0,所以我在做任何其他事情之前使用 NuGet 更新到 4.0.30506。
这并没有解决问题,但不仅如此,在检查时我注意到参考 System.Web.MVC 仍然指向 4.0.20710.0 版本的 dll 文件。
我担心添加一个标记为已弃用的不必要的修复程序,并希望 MVC 更新能够解决此问题。有什么建议么?