我成功地遵循了本教程:http://www.hanselman.com/blog/MixMobileWebSitesWithASPNETMVCAndTheMobileBrowserDefinitionFile.aspx
当我使用移动设备访问页面时,所有视图都成功呈现。但是,它们的布局错误(AKA主页)。
我有以下结构: /Views/Shared/Mobile/_Layout.cshtml /Views/Shared/_Layout.cshtml
问题是,我必须在每个视图中添加以下语句:
Layout = "~/Views/Shared/Mobile/_Layout.cshtml";
是否有可以放置逻辑以在另一个布局上渲染一个布局的地方?
if(normalAccess)呈现正常的_Layout.cshtml else(mobileAccess)渲染/Mobile/_Layout.cshtml
我找不到。
感谢您的帮助。
答案 0 :(得分:7)
http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx
上有一篇好文章您可以在\ Views文件夹中创建一个名为_ViewStart.cshtml的文件,您可以在其中放置所有视图使用的布局逻辑
示例_ViewStart.cshtml只是:
@{
Layout = "~/Views/Shared/SiteLayout.cshtml";
}
文章还指出:'因为_ViewStart.cshtml允许我们编写代码,所以我们可以选择使布局选择逻辑比基本属性集更丰富。例如:我们可以改变我们使用的布局模板,具体取决于访问网站的设备类型 - 并为这些设备提供手机或平板电脑优化布局,以及针对PC /笔记本电脑的桌面优化布局。'
你可能需要花些时间来解决这个问题,但是我没有2010安装方便试试这个。