本文将为大家介绍一下
ASP.NET 2.0 在创建母版页时引来的麻烦,并分析了问题产生的实质,大家在实际操作中多多注意一下。
、Sóme…
★尋找承諾★
馨萝-女人香
地苽`~筱潴潴
鈅懸/yl鈷鎮
凉面
SOSO用户
∮籪Ж檒☆
-[尛 偉/]
泡沫之夏
神秘男liu氓
醉梦无痕&
維他命_
游遍China
┡ЮTメ→强
晴天小虎
.oヽ掱背/╲,
杉
ò "劇終
天堂の劇終℡
`Ha.Andy、
平面§小精灵
拉登→心情
11111
泚莮孒の哊毐
Childe
〖缘ヤ分〗
0℃dě眼淚
Next街角
無倷
┢┦apΡy
糖葫芦
最終/qz幻想
「皁巳痲ホヾ
逍遙¤逐靈ぶ
風~ ~ ~ ~ ~
追梦熊;多笾
Яèd氣球oО
↙ 王 大 少
520056819
開始頽廢
SOSO用户
逍遥$轩&
&( 尐儍苽-℡
傑倫/aiq溡緔
三世轮回
[﹃]
:- -↘無言
ゞ①苆ㄨ隨缘
莉攀ベ⒏⒏层
じoveChikage
/li龍魂/!!!
★①错再错★
°╪ mFˋ酷
ゥ﹎劇.
れ嘢蠻尐鱻れ
﹎劃上劇號﹎
☆樂樂☆
哭泣中的美
永远的…
KiSs♂→YoU
失眠多夢。
hbb
都叫我唐伯虎
﹎ヤ臣 _▂
╰*ぶ戀ぶ*╮
漩囀の風車
ˊ/-蕥芠_↘
那兰逐幻
嫥屬"婞福.
鉳 鉳
︶ㄣRa!n ゝ
{-从啙以後 }
棒棒Táng
Let’s Shine
天使∑掉下来
●o笨疍z!
ヤ古劍魂
石头的依偎
/sun♀靜似月
杏林一叶
寒尘/love
乖乖可人儿
Fox_K/ty
啭..ㄐ
冷泪︻┳═一
香雪菲儿
cΗao
洳惈愛请罙愛
~&孤独的~*
﹖⒉∞7.榊話
九妹
华仔/ty
SOSO用户
10ο﹪釹魜`
木時
浪子/aiq風雲
{愛這釹孓
亖X●mè
如水
|懒瀦|﹖
.o 莠·
ωǒべ對ヾle
兄弟儀
56856641
〆﹎詼鈷娘ˇ
灬KiSs
|°誹孆ザㄝ
阿杰
B○~B○/cy
哖_少オ輕狂
Orpheus
夢の寒/xy
蓝色忧郁
bιη
雄鷹╃]]騰飛
月升日落
决不言败
混世あ魔王
蔚蓝的す空氣
木木
比金猪大一岁
Ψ爍⒗仔ㄨ
云霄
·丄錯床﹖
祗愛妳①ɡè
.﹎値鍀_﹖
靚仔鎭英俊
穿牛仔的耶稣
栤蘜憮娯
ヅ惡魔ぺ嫙嵂
极限天子
祐珥環┊_◆
「儛之綉﹣﹖
活得更精彩
不睡觉的鱼
水稻开拓手
憂鬱曉巫婆
冰红茶
悠傻)-)
oヤ偽妳變壞o
DΟИG
╰☆鎏曐→雪
騰訊Qq
ヴ无敌ㄜ英雄
沧桑男人
111111111111
遗じのve忘﹎
贰え蕶ㄏ肆
ぷ葑鈊鎖愛ぷ
/mg短开ぃ弦
/:P縴 掛
★神蘅苡♂侠
ヤ朩 い耦
′Mua.〢﹎榤
晒黑的云
丹
_◆≒;絆軹煙
阳光小子
真水&无香
♂MeˇJ!é}
L.way
教 父(毅)
⒌顔6銫d笹琾
╳╳ .翫掵℡
TIANSHENGYID
孤雁双飞
錒傑-
| .儍氣 ゛﹖
☆ 大と小
__傷勒.o
冰果
问问
开心的男孩
冷光
ㄗ仟Běㄨ樱
.泪滑过ヤo
ξ→稥 煙
す嗸⑩菾梺メ
℡┌⒈顆糖
‘雙性灬戀
▕&麥|兜'
ヤ木目○公ヤ
/yl水中月影
.兲藍sё
嗯,莪错ㄋ
昌覀仳盧普斯
bajinlong
☆開鈊 √
╰☆丹ぺん
吃饱了撑着
习惯沉默
′_摯情ヽ.
Y丶Sky灬丨圣
рaИdа﹏o
…藯灆の寂寞
yzjy
幽灵骑士
一、问题提出
由于总体排版和设计的需要,我们往往创建母版页来实现整个网站的统一性,最近我由于统一性的需要,把原来整个项目单独的页面全部套用了母版页。但是出现了一个错误……在我的Blog中记录一下,方便大家参考。
二、 抽象模型
由于整个页面内容过多,所以我把这个页面中最为本质的问题抽象出来。
原来单一页面,就是利用按钮触发JS事件,在文本域中插入“(_)”功能,其实现代码如下:
以下是引用片段: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>单一页面抽象模型-YJingLee</title> <script language="javascript" type="text/javascript"> // <!CDATA[ function insert() { document.getElementById("txt").value=document.getElementById("txt").value+"(__)"; return; } // ]]> </script> </head> <body> <form id="form1" runat="server"> <div> <textarea id="txt" runat="server" name="txt" rows="10" cols="50"></textarea> <asp:Button ID="btnInsert" runat="server" Text="服务器端插入(_)" OnClientClick="insert();"/> <input id="btnInsert2" name="insert" οnclick="insert();" type="button" value="客户端插入(_)" runat="server"/></div> </form> </body> </html> |
上述页面可以正常使用。后来使用模板页后,其代码如下:
以下是引用片段: <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" Title="使用母版页面抽象模型-YJingLee" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <script language="javascript" type="text/javascript"> // <!CDATA[ function insert() { document.getElementById("txt").value=document.getElementById("txt").value+"(__)"; return; } // ]]> </script> <div> <textarea id="txt" runat="server" name="txt" rows="10" cols="50"></textarea> <asp:Button ID="btnInsert" runat="server" Text="服务器端插入(_)" OnClientClick="insert();"/> <input id="btnInsert2" name="insert" οnclick="insert();" type="button" value="客户端插入(_)" runat="server"/></div> </asp:Content> |
当打开后按下按钮出现了“Microsoft JScript 运行时错误: 'document.getElementById(...)' 为空或不是对象”。这是什么原因呢?原来好好的,怎么套用个母版页就出现这个奇怪的问题呢?困扰了好久,和朋友讨论了一下,终于找到了答案……
三、分析本质
原来我们仔细看看其生成的HTML代码:
单一页面:
以下是引用片段: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head><title> 单一页面抽象模型-YJingLee</title> <script language="javascript" type="text/javascript"> // <!CDATA[ function insert() { document.getElementById("txt").value=document.getElementById("txt").value+"(__)"; return; } // ]]> </script> </head> <body> <form name="form1" method="post" action="Default.aspx" id="form1"> <div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTEzMjE5NDA0NWRkKlEH1jSXJkIbnUaP2d9Dra8LQEk=" /> </div> <div> <textarea name="txt" id="txt" rows="10" cols="50"></textarea> <input type="submit" name="btnInsert" value="服务器端插入(_)" οnclick="insert();" id="btnInsert" /> <input name="btnInsert2" type="button" id="btnInsert2" οnclick="insert();" value="客户端插入(_)" /></div> <div> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBALVid/5DQKShrDCCQL5w9POBQL5w4vOBZPGqxUU/yvoKTqG8k+uG8YroGTv" /> </div></form> </body> </html> |