代码之家  ›  专栏  ›  技术社区  ›  Kavet Kerek

ASP.NET MVC是否要求您使用母版页?

  •  1
  • Kavet Kerek  · 技术社区  · 14 年前

    我的团队正在开发一个新的Web应用程序,并正在考虑使用MVC。但是,有些成员希望包含页面而不是使用母版页。在ASP.NET MVC中可以这样做吗?在我和MVC讨论过的少量时间里,我还没有弄清楚一个人是如何做到这一点的。

    5 回复  |  直到 14 年前
        1
  •  6
  •   Justin Niessner    14 年前

    为什么选择?

    在过去两者都使用过,母版页更容易使用。你只需要克服(非常小的)学习曲线。

    不过,ASP.NET MVC并不强制您执行任何一项…

    如果您喜欢include方法,那么使用局部视图提供相同的功能可能会让您感觉最舒服。您只需将部分视图添加到每个页面,而不包括另一个页面。

        2
  •  1
  •   Andrei Rînea    14 年前

    不,它不会以任何方式强迫你。

        3
  •  1
  •   3Dave    14 年前

    您应该避免服务器端包含任何比经典ASP新的内容。它们更难调试,出现问题时,IIS很难找到正确的行号,等等。此外,我还没有查看在请求管道中处理SSI的顺序-它们可能根本无法与ASP.NET一起工作。

    如果您要进入MVC,请使用 RenderPartial() RenderAction() 相反。这些基本上与服务器端include执行相同的功能,但更符合框架的精神,并提供了一些额外的好处,例如在不必声明全局变量的情况下传递模型(这也应该避免,我不确定在.NET范围规则下是否可能)。

    而且,不需要母版页,但您确实应该使用它们。使用include来构建页面布局,但前提是您不需要也不需要在将来的任何时候彻底改变站点的布局。我现在在这艘船上有一个350k行的经典ASP应用程序,它使用了非常好的结构化代码,其中包括创建页面布局。这是当时最好的解决方案,但现在它让我头痛了很多(10年后)。

    使用母版页,您可以将ContentPlaceholder块移动到任意位置,而使用 #includes 最后一页确实根据放置include的顺序来确定格式。这也使得创建网站的移动版本变得非常简单——您可以创建一个特定于移动的主页面并使用相同的内容视图。

        4
  •  1
  •   Bayode    14 年前

    这是一个选择的问题,但是为了在整个Web应用程序中保持一致的外观和感觉,母版页只会提供给您。你必须带领团队通过良好的母版页设计的学习曲线,这不仅对目前的项目有用,而且对未来的项目也有用。祝你好运!

        5
  •  0
  •   Kris van der Mast    14 年前

    我宁愿选择使用母版页,因为它的易用性和在MVC中内置的支持。

    如果您想了解更多关于它的信息,请阅读本教程: Creating Page Layouts with View Master Pages .

    Grz,克里斯。