base元素要小心使用

    昨天做图文混排,用了DotNetTextBox,结果点提交按钮时却出现找不到资源的错误,跟踪发现按钮的Click事件根本没有触发,在母板页的Page_Load事件处理完后就出现找不到资源的错误,而且目录自动定向到网站根目录。开始还以为是DotNetTextBox的问题,后又换了FreeTextBox、FckEditor、CuteEditor,但结果都一样。实在没辙,在CSDN上发帖,有高人说是不是在线编辑器不能跟母板页一起工作,就做了两个测试页面,两个页面都有提交按钮及其事件处理代码,都没有用在线编辑器,但一个用了母板页,一个没用母板页,结果没用母板页的能提交成功,用了母板页的出现找不到资源。后又做了一个测试页面用了在线编辑器,但没用母板页,也能提交成功。问题大概有个眉目了,就在母板页上有问题。后经高人指点,说base元素可能是罪魁祸首,后去掉base竟然提交成功,甚喜。开始用base是因为做导航栏用了A href,但跳转到CIS/博客/目录中的页面时,路径就默认为CIS/博客/了,看了MSDN上这句话“默认情况下,浏览器使用当前页面的 URL 作为解析相对路径的基准。但是,您可以在页面中包含 HTML base 元素,以指定替代基路径。”,又在网上找了下Base的资料,就用了Base,没想到竟害我好苦啊。去掉了base,搞定提交时地址解析的错误,后又将A href换成了HyperLink NavigateUrl,搞定了导航栏。刚开始查找不到资源的错误,又说在页面@page指令中添加EnableViewState="false"  ViewStateEncryptionMode="never"可能会解决问题,但事实上没有解决我的问题,因为我的问题不在那。
    经过这次磨难,又加深了对ASP.NET路径解析的理解。也感觉社区的力量真是大啊,再次感谢所有参与讨论的人。

你可能感兴趣的:(base元素要小心使用)