VS2005的关于母版页嵌套的一个小技巧

最近工作很忙,无法更新设计模式的读书笔记,几乎没有时间看书。真实罪过啊……
不过工作当中还是很有收获的。
2005新上岗了。慢慢的也开始熟悉了它的用法。其中提供的母版页技术,是个相当实用的东西。大大简化了编程的手段,减少了工作量。随着使用的深入,开始使用母版页嵌套的技术。

不过这个东西好,但是一直有一个比较困扰开发人员的地方。那就是:使用母版页嵌套,无法切换到视图界面进行编辑,在编辑页面的时候,只能看着一堆的HTML代码凭空想象,相当的费力。当然,也提高了不少看HTML代码的能力。哈哈。不过,微软的一个小BUG在工作期间,被我们无意的发现了。从此以后彻底的解决了这个问题。

解决办法如下:
在使用了母版页的页面中,代码页的PAGE指令里都有这么一句:MasterPageFile="~/Main.master"。也就是告诉页面使用的是什么地方的哪个母版页。如果这个母版页恰好经过了嵌套,那么好,我们就没有办法切换到视图状态了。
很不爽。

但是微软开发产品的时候,是分块的开发。两个程序员之间的东西要完美的一丝不苟的合起来,就是在微软那么强大的公司也总会有差池。在这里,就是一个处理空格的问题没有统一起来。
解决问题的办法就是:如果我们在那句话后面加上空格,变成了MasterPageFile="~/Main.master ",那么我们就能够切换到视图状态了。而且能够编译通过,并完整执行。
其实,在后面加任何一个字母都可以。也就是说,在切换视图的时候,只要保证和正确的母版页地址有错误,那么就能够切换。但是用其他字母会造成无法运行的情况,因为加了其他字母,也就是换成了别的母版页,而实际并不存在这个母版页。而用空格的话,它在运行时,去找母版页的时候,是做了一个TRIM的动作,去掉了空格。所以,加空格即可以切换也可以运行。
也就是说,在切换的时候,开发时没有处理空格;在编译的时候,又处理了空格。微软的一个小BUG,方便了全世界使用2005的做母版页嵌套开发的程序员。
很爽。

Difficulty of making decision lies on what to lose not gain

posted @ 2007-08-02 16:17 老四 阅读(3689) 评论(20)  编辑 收藏 网摘 所属分类: 技术工作

  回复  引用  查看    
#1楼2007-08-02 16:20 | xiao_p      
2005新上岗了。慢慢的也开始熟悉了它的用法

>>呵呵,开始看成了2008,还在想,怎么2008还在介绍模板页的问题。原来是2005,楼主要加快追赶微软的脚步啊。

  回复  引用  查看    
#2楼[楼主]2007-08-02 16:22 | 老四      
那确实。微软太快了。
2005也用了不短的时间了,正在考虑升级……

  回复  引用    
#3楼2007-08-02 16:39 | gakaki[未注册用户]
VS2008IDE对于多层嵌套的母版页有改进哦
  回复  引用    
#4楼2007-08-02 17:02 | foson[未注册用户]
寫錯別字才是罪過。。-_-|||
  回复  引用    
#5楼2007-08-02 17:33 | rui[未注册用户]
完全没有看懂你是怎么实现的,试了n多遍还是不行
  回复  引用    
#6楼2007-08-02 19:32 | 刀光剑影[未注册用户]
我试了,成功了!内容页可以切换到设计界面,但是嵌套的模板页不可以切换到设计界面,其实2005是支持母板页嵌套的,只不过当初这个功能没有做完美,但是vs2005要发布,只好先把这个功能做了一半,仅支持源码,现在vs2008出来了,好像在设计界面上就支持了,
从这里大家可以理解在项目或产品开发中,有时候软件的某个功能开发如果需要的时间超出了项目的截至日期或软件的发布日期,只要这个功能不是非常重要的,就不用把它做的太完美,也要保证项目的按时完成或产品的按时发布。

  回复  引用    
#7楼2007-08-02 22:02 | ok[未注册用户]
昨天刚装上vs2008,对Masterpage的处理比VS2005爽多了。
方正是刚用2005还不如马上换2008比较爽。

  回复  引用    
#8楼2007-08-02 22:36 | 晨曦满山[未注册用户]
谢谢博主
  回复  引用    
#9楼2007-08-03 08:21 | 万恶的验证码[未注册用户]
用Microsoft Expression Web解决了
  回复  引用  查看    
#10楼2007-08-03 08:46 | 阿不      
原来用了一种解决办法是:设计时使用一个MasterPage,在运行时,动态修改MasterPage。设计使用的MasterPage跟运行时的MasterPage内容是一样的,只不过是运行时使用嵌套的MasterPage。
VS2008已经解决了这个问题

  回复  引用    
#11楼2007-08-03 08:50 | mk2
顶啊,至少能看到视图。
  回复  引用    
#12楼2007-08-03 09:32 | 老四[未注册用户]
简单说来就是原来是MasterPageFile="~/Main.master"这样的代码,现在在master的后面加一个空格,变成MasterPageFile="~/Main.master ",如果用下划线代替空格,就是MasterPageFile="~/Main.master_"这样。用空格这样改动后,就可以切换到视图。很方便的。
  回复  引用    
#13楼2007-08-03 10:41 | Kangnoz[未注册用户]
试了一下,确实可以,内容页可以,子母版页还是不行。
用vs2008吧,这个完全ok了。

  回复  引用  查看    
#14楼2007-08-03 10:45 | 搜索人生      
lz牛X,这个方法都能发现啊,讲讲由来!
可惜,嵌套母版页还是不能设计视图。

  回复  引用    
#15楼2007-08-03 14:07 | adskfj[未注册用户]
<a href="http://www.wp999.cn" target="_blank">网通传奇私服</a>
<a href="http://www.131cq.com" target="_blank">传奇私服</a>
<a href="http://www.dd544.com" target="_blank">传世私服</a>
<a href="http://www.45hot.cn" target="_blank">热血江湖私服</a>
<a href="http://www.45pp.cn" target="_blank">魔兽私服</a>

  回复  引用    
#16楼2007-08-03 15:30 | kim[未注册用户]
这个问题在VS2008中已经实现。
  回复  引用    
#17楼2007-08-03 16:52 | CCC[未注册用户]
很好,终于看到解决方法还有分析了。。
  回复  引用  查看    
#18楼2008-06-12 20:18 | 沙加      
母版页我已经很不喜欢,还要嵌套啊~~
  回复  引用  查看    
#19楼2008-09-27 10:09 | 黑翼      
真是无语给微软啊,很倒很倒
  回复  引用    
#20楼2009-04-29 15:54 | TTTTTTTTTT[未注册用户]
哥们你真牛B!我还以为不能切换到视图状态是微软故意设计的,你太牛B了!



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 840447




相关文章:

相关链接: