【问题标题】:Nested master pages in ASP.NET MVC 2ASP.NET MVC 2 中的嵌套母版页
【发布时间】:2014-07-29 23:44:07
【问题描述】:

我知道如何在 web 表单中制作嵌套母版页,但在 MVC2 中也可以吗?我只知道如何使用标记。

我想根据条件从代码中设置它。是否可以在控制器中使用一些代码来定义嵌套母版页和母版页?

【问题讨论】:

  • 有点苛刻,这是一个有效的问题。 SO 不是一个论坛,海报因不排队而受到侮辱。 @尼拉。关于 MVC 2 中嵌套母版页的信息非常丰富。您有什么要求让事情变得与众不同?
  • 谢谢大卫。我正在寻找如何从我的控制器中设置嵌套母版页。
  • @Nyla:链接的问题是否可以帮助您满足您的需求?如果没有,您将需要编辑此问题以提供有关您要执行的操作的更多详细信息。如果是这样,我会继续关闭这个。
  • @Bill,我改变了我最初的问题,因为它显然不够清楚。感谢您的宝贵时间。

标签: asp.net-mvc master-pages


【解决方案1】:

" 是否可以在控制器中使用一些代码来定义嵌套母版页和母版页?"

不。默认视图引擎仅允许您定义一级 MasterPage。

见:http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.view.aspx

【讨论】:

    【解决方案2】:

    好吧,在控制器中没有办法做到这一点,afaik。然而,是什么阻止您传入 ViewState 变量并在您的视图中查询该变量以确定您的母版页应该是什么?

    可能对你有帮助的东西:templated partial view

    【讨论】:

      【解决方案3】:

      子页面看起来像一个普通的子母版页。

      视图页面将继承子页面。

      将 'Inherits="System.Web.Mvc.ViewMasterPage"' 放在第一行,并将 MasterPageFile 指向父母版页。

      内容占位符将被链接:即,顶级母版页将具有带有 ID 的 ContentPlaceHolder 部分,而从属母版页将具有 ContentPlaceHolderID 设置为父页面中上级 ContentPlaceHolder 的 ID 的内容部分。

      关键是视图引擎会将最里面的文本替换为下一级占位符,直到所有占位符都被html内容填充。

      我正在使用这种方法准备 MVC 音乐商店示例应用程序,它对我来说很好。

      这允许程序员遵循不要重复自己的规则,并且不会将代码从一个母版页重复到另一个母版页。您可以使用站点导航和所有页面通用的基本格式定义顶级母版页,然后在页面呈现存在差异时使用子母版页,这些差异对于特定控制器呈现的特定视图集是唯一的。

      我知道这是一篇老帖子,但这个概念即使在今天也值得评论。

      我正在使用 MVC2,因为这是当前在我工作的计算机上授权的内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-22
        • 1970-01-01
        相关资源
        最近更新 更多