我的小组正在开发一个新的Web应用程序,正在考虑使用MVC。但是,有些成员宁愿包含页面而不是使用母版页。这可以在ASP.NET MVC中完成吗?在我用MVC探讨过的少量时间里,我还没有弄清楚如何实现这一目标。
答案 0 :(得分:6)
为什么选择偏好?
过去使用过这两种版本,母版页更容易使用。你只需要克服(非常小的)学习曲线。
ASP.NET MVC不会强迫你做任何一个......
如果你喜欢Include方法,那么使用Partial Views提供相同的功能可能会让你感到最舒服。您只需将部分视图添加到每个页面,而不是包含另一个页面。
答案 1 :(得分:1)
没有。它不会以任何方式强迫你。
答案 2 :(得分:1)
你应该真的避免使用比传统ASP更新的服务器端包含。它们更难以调试,IIS在遇到问题时很难找到正确的行号等。另外,我还没有看到在请求管道中处理SSI的顺序 - 它们可能根本不起作用用ASP.NET。
如果您要进入MVC,请改用RenderPartial()
或RenderAction()
。它们执行与服务器端包含的功能基本相同,但更符合框架的精神并提供一些额外的好处,例如传递模型而不必声明全局变量(也应该避免,我是不确定在.NET范围规则下是否可能。)
而且,不,主页不是必需的,但你真的应该使用它们。使用includes来构建页面布局的工作原理,但前提是您不需要在将来的任何时候彻底更改站点的布局。我现在在那条船上有一个350k线的经典ASP应用程序,它使用非常漂亮的结构化代码和#includes来创建页面布局。这是当时可用的最佳解决方案,但它现在引起了很多麻烦(10年以后)。
使用母版页,您可以在任何地方移动ContentPlaceHolder块,而使用#includes
时,最终页面确实按照放置包含的顺序确定格式。这也使得创建网站的移动版本非常简单 - 您可以创建特定于移动设备的母版页并使用相同的内容视图。
答案 3 :(得分:1)
答案 4 :(得分:0)
我宁愿选择使用Master页面,因为它易于使用并且在MVC中内置支持。
如果您想了解更多信息,请查看本教程:Creating Page Layouts with View Master Pages。
Grz,Kris。