我想为我已经开发的项目创建一个母版页。由于项目包含许多表单,因此很难在每个表单中包含母版页...是否有可能将母版页包含在任何其他最简单的页面中方式...
请提出一些建议..
提前致谢...
答案 0 :(得分:1)
据我所知,没有简单的方法可以做到这一点。
您必须手动将母版页添加到页面指令
<%@ Page MasterPageFile="~/Masterpage.master" ... %>
在页面标记周围添加相关内容部分:
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
</asp:Content>
并从每个页面中删除<html>, <head>, <body> and <form>
标记。
Here 是Bob Powell撰写的一篇文章(和源代码),描述了一种自动将html文件转换为aspx文件并添加母版页的方法。我相信你可以根据自己的需要调整它。
答案 1 :(得分:0)
这种过渡并非易事,正如@geoff所示。如果你有足够的时间和耐心,这是可能的。第一步是采用所有常见元素(布局,菜单,页眉,页脚,任何常见的元素)并开发主页面结构。根据应用程序中表单的不同布局,您可能需要多于1个。为每个常见部分开发用户控件,并确保母版页使用这些控件。然后系统地浏览您网站的每个页面并开始实现母版页。
作为一种辅助机制,您可能还希望拥有一个能够通过母版页与所包含的用户控件进行通信的页面基类。在我们的组中,我们有一个标准,用于在UserControls和MasterPages上设置一个名为ParentForm的属性,该属性是我们的主基页类的类型,并且在任何页面或控件的Init期间设置此属性,以便开发人员在任何时候都可以访问(通过Intellisense)页面本身。这是特别有用的,因为大多数控件的父级是一个容器,其父级是一个容器,其父级......你明白了。对于我们的控件,它只是this.ParentForm
。
这将是一个漫长的过程,但MasterPages真的是一个“基础”的架构决策而不是“以后雇用”的概念。