假设有母版页第一级母版页MasterPage.master,第二级母版页MasterPage2.master是MasterPage.master的内容页,Default.aspx是MasterPage2.master的内容页,一般情况下Default.aspx是打不开设计视图的(MasterPage2.master也打不开,但无法解决),在网上找了找,有两种解决办法:
1.首先新增一个类:BasePage.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public class BasePage : System.Web.UI.Page
{
private string runtimeMasterPageFile;
public string RuntimeMasterPageFile
{
get
{
return runtimeMasterPageFile;
}
set
{
runtimeMasterPageFile = value;
}
}
protected override void OnPreInit(EventArgs e)
{
if (runtimeMasterPageFile != null)
{
this.MasterPageFile = runtimeMasterPageFile;
}
base.OnPreInit(e);
}
}
然后修改Default.aspx的Page指令:
修改前:
<%@ Page Language="C#" MasterPageFile="MasterPage2.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
修改后:
<%@ Page Language="C#" MasterPageFile="" RuntimeMasterPageFile="MasterPage2.master" CodeFileBaseClass="BasePage" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
最后修改Default.aspx的后台代码的继承:
修改前:
public partial class Demo_Default : System.Web.UI.Page
修改后:
public partial class _Default : BasePage
经过以上三步的修改,就可以打开Default.aspx的设计视图了
2.其实还有更简单的一种方法:
就是在Default.aspx的Page指令的MasterPageFile="MasterPage2.master" 的反引号前多加个空格
修改前:
<%@ Page Language="C#" MasterPageFile="MasterPage2.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
修改后:
<%@ Page Language="C#" MasterPageFile="MasterPage2.master " AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
这样就可以打开Default.aspx的设计视图了
在第一种方法中
MasterPageFile值为空,意思是编辑时无母版页,RuntimeMasterPageFile值是嵌套母版页,意思是运行时有母版页,CodeFileBaseClass的意思是你的页面类继承自:BasePage。如果不加CodeFileBaseClass,则会报错,因为RuntimeMasterPageFile不是Page的默认指令。
第二种方法则是取了个巧,其实,在后面加任何一个字母都可以。也就是说,在切换视图的时候,只要保证和正确的母版页地址有错误,那么就能够切换。但是用其他字母会造成无法运行的情况,因为加了其他字母,也就是换成了别的母版页,而实际并不存在这个母版页。而用空格的话,它在运行时,去找母版页的时候,是做了一个TRIM的动作,去掉了空格。所以,加空格即可以切换也可以运行。
在打开 Default.aspx的设计视图时可能不是按照你想象中的顺序排的,不用管他,它在运行的时候会自动排好的!
Demo下载:
http://ljzforever.qupan.com/?folder=951925
参考的文章:
VS2005中显示使用嵌套母版的设计视图
http://blog.csdn.net/sdtsfhh/archive/2008/07/02/2604335.aspx
Tips for Nested Master Pages and VS 2005 Design-Time
http://weblogs.asp.net/scottgu/archive/2005/11/11/430382.aspx
VS2005的关于母版页嵌套的一个小技巧
http://xjhami.bokee.com/viewdiary.17350816.html
分享到:
相关推荐
在ASP.NET Web Forms框架中,母版页(Master Page)是一种强大的布局工具,它允许开发者创建统一的页面布局,而内容页(Content Page)则可以插入到母版页中,提供具体的页面内容。本示例代码着重展示了如何实现母版...
本文将深入探讨在Visual Studio 2015中如何使用母版页,以及如何创建嵌套母版页。 首先,我们来理解母版页的基本概念。母版页是一个特殊的ASP.NET网页,其中包含了一个网页的通用布局,如头部、底部、侧边栏等元素...
以上就是VS2008(C#)中ASP.NET子页嵌套多层母版页的控件访问方法。正确理解和应用这些技术,可以帮助开发者构建更加灵活且易于维护的Web应用程序。在实际开发中,应根据项目的具体需求选择合适的方法,确保代码的...
2. 切换到各内容页的设计视图,在相应的页面中的 ContentPlaceHolder1 中输入内容,例如“Default2 页面”。 3. 在母版页源视图中加一层 div。 4. 切换到设计视图,从“工具箱”的“导航”一栏中拖一个“Menu”到...
在这个主题中,我们将深入探讨如何在VS2005中创建母版页以及相关源代码实例。 **母版页(Master Pages)**是ASP.NET中的一个重要概念,它允许开发人员定义一个统一的布局模板,这个模板可以被多个内容页面(Content...
asp.net 嵌套母版页(实例演示) 包含有母版页、嵌套母版页、2个内容页可以直观的看到嵌套母版页应用的效果。
2. **事件处理**:母版页和内容页都可以处理各自的事件,如果内容页的控件需要调用母版页的方法,可以通过`FindControl`方法获取到母版页的控件实例,然后进行操作。 3. **嵌套母版页**:一个母版页可以嵌套另一个...
在设计视图中,可以直接拖放控件到母版页的占位符,同时在内容页中可以看到预览效果。 5. **动态内容的处理** 对于需要根据用户或页面特定情况变化的元素,可以在内容页的`<asp:Content>`块中覆盖母版页的相应...
9. **动态母版页**:在运行时,可以通过编程方式将内容页与不同的母版页关联,从而实现动态布局切换。 10. **SEO优化**:母版页技术有助于提高搜索引擎优化(SEO),因为所有的内容页都可以共享相同的头部信息,...
7. **调试和优化**:在VS08中,开发者可以通过调试工具查看母版页和内容页的嵌套关系,以及它们如何交互。此外,合理使用母版页可以减少代码重复,提高网站性能。 通过以上知识点,我们可以看出ASP.NET母版页在网站...
在ASP.NET web开发中,创建一致且易于管理的网站风格是一项关键任务,这可以通过使用母版页(Master Pages)和主题(Themes)来实现。母版页提供了网页布局的统一框架,而主题则允许快速应用全局外观和感觉。在本...
在创建子页面时,我们需要选择对应的母版页,并在子页面中使用`<asp:Content>`控件填充母版页中的`ContentPlaceHolder`。子页面的`.aspx`文件将包含母版页的代码,并且可以在特定的`Content`控件中添加自定义内容。 ...
在ASP.NET Web应用程序中,母版页(Master Page)是一种强大的功能,它允许开发者创建一个统一的布局模板,用于多个内容页(Content Page)。当一个内容页引用了母版页,它们之间的事件处理顺序就变得至关重要,因为...
母版页(Master Page)的概念类似于网页设计中的模板,它可以包含一些全局性的元素,如头部导航、页脚信息、侧边栏等,而子页面则可以专注于其特有的内容展示。 在ASP.NET中,母版页的主要优点包括: 1. **样式和...
从给定的文件信息来看,主要讨论的是在ASP.NET 2.0中使用母版页(Master Page)时遇到的问题,具体是JavaScript无法在页面上正常工作,导致预期的功能无法实现。下面将深入分析这个问题,并提供可能的解决方案。 ### ...
母版页(Master Page)是ASP.NET框架中的一个重要概念,它是网页设计中的一种布局机制,旨在提供统一的页面结构和风格,从而简化网站开发过程。母版页允许开发者定义一个公共头部、尾部或者侧边栏,这些元素在每个...
在ASP.NET Web开发中,母版页(Master Page)是一种非常实用的设计模式,它可以帮助开发者快速构建具有统一外观和布局的多个页面。这种模式允许开发者定义一个共享的布局框架,并在这个框架内嵌入具体的页面内容。...
在ASP.NET web开发中,导航控件和母版页是构建高效、统一用户界面的关键工具。本实验旨在帮助学生深入理解和熟练运用这两种技术。 **导航控件**是ASP.NET提供的一种方便用户在网站中导航的组件,它们可以是菜单、树...
标题中的“一个简易的网站 用了母版页”表明这个项目是一个初级级别的网站开发实例,其中使用了ASP.NET中的母版页(Master Page)技术。母版页是.NET框架提供的一种强大工具,允许开发者创建一致的布局和设计,应用...