假设有母版页第一级母版页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
分享到:
相关推荐
内容页通过母版页与子母版页通信示例源码,附加动态加载导航菜单功能及头部图片切换功能
VS2008(C#)中的ASP.NET子页嵌套多层母版页的控件访问方法
asp.net 嵌套母版页(实例演示) 包含有母版页、嵌套母版页、2个内容页可以直观的看到嵌套母版页应用的效果。
vs2005中创建母版页_源代码_实例,代码演示!
一个visual studio 2015中关于母版页(masterpage)的例子,包括了母版页的创建使用,和套用母版页的其他页面的例子
母版页的使用方法包括母版页值传递等等母版页的使用方法包括母版页值传递等等母版页的使用方法包括母版页值传递等等
母版页 的 使用母版页 的 使用母版页 的 使用
本实例介绍了在ASP.NET的网站开发中,如何使用母版页\主题,实现网站风格切换,并通过profile实现用户状态的持久化保存!
Web控件和母版页Web控件和母版页Web控件和母版页Web控件和母版页Web控件和母版页Web控件和母版页Web控件和母版页
页面使用母版页后,在页面中查找指定的控件是否存在,以及得到的控件类型是否和自己控件的类型一致;从而判断是否可以显示
用户控件时标准化通用页面元素的优秀方式,但是,它们自身并不能解决页面布局的问题,因为没有办法保证用户控件在所有页面中都被放到同样的位置。 • HTML 框架。框架是在一个浏览器窗口中同时显示多个页面的 HTML ...
引用asp.net母版页后,母版页和内容页的页面事件执行顺序引用asp.net母版页后,母版页和内容页的页面事件执行顺序
天轰穿系列教程之-60MasterPage母版页创建 天轰穿系列教程之-60MasterPage母版页创建 天轰穿系列教程之-60MasterPage母版页创建 天轰穿系列教程之-60MasterPage母版页创建 天轰穿系列教程之-60MasterPage母版页创建 ...
asp.net关于主题母版页内容页所做的一个购物网站
在内容页中控制母版页中用户控件中的控件及属性.doc
asp.net2.0母版页技术源文件 asp.net2.0母版页技术源文件 asp.net2.0母版页技术源文件
ASP.NET 的一个后台管理的母版页,适用于各种网站, 开发环境VS08。需要的朋友可以下载
母版页绑定页面的meta部分,在页面中读取数据库中相应的设置,有利于搜索引擎收录网站。
母版页制作流程,完整的,一步步根据不同的需要可自行在母版页中添加内容,包括图片等一些公共内容,记得要添加div来进行页面布局
ASP.NET 2.0创建母版页引来的麻烦-js无用