函数renderBody()不使用.Mobile.cshtml视图

时间:2012-11-12 11:28:48

标签: asp.net asp.net-mvc visual-studio-2010 razor asp.net-mvc-4

我正在使用新的MVC4移动功能,如果您将.Mobile添加到视图名称,则会在移动设备上查看移动功能时将其移出。因此_Home.cshtml变为_Home.Mobile.cshtml。当我手动调用视图时,这是有效的:@Html.Partial("_HeaderNavigation",Model)如果合适,它会加载移动版本。

但是,当我使用renderBody()时,它会加载_Home.cshtml而不是_Home.Mobile.cshtml。我正在使用区域,因此home.cshtml位于某个区域。

EDIT

进一步研究,是因为_Home.Mobile.cshtml在一个名为Home的区域?这是否不知道获得.mobile版本?

3 个答案:

答案 0 :(得分:1)

如果Home是一个视图,那么在它下面加一个下划线会很奇怪。下划线历来用于不会自己显示的项目,因此不希望被发现。

您可以使用名为Index的视图在您的区域主页下测试您的设置,看看是否有效。

答案 1 :(得分:0)

我发现问题是在家庭区域的控制器中我返回完整路径,例如return PartialView(MVC.Home.Home.Views._Home, this.Page);代替return PartialView("_Home", this.Page);Dove告诉我在another question做的事情。

答案 2 :(得分:0)

我认为这可能与MVC 4移动版well know open issue幕后缓存有关 - 您可以尝试应用此补丁:FixedDisplayModes