asp.net 2.0中动态修改页面标题

作者:互联网

2009-06-30

ASP.NET教程

在老外的站上看到解决的好方法,故简单编译之:
在一个asp.net 的应用中,经常要动态修改页面的标题,一个典型的例子就是,在一个页面导航的控件中,希望用户点选哪一个连接,在页面的title里就显示相关的内容,举个例子,比如一个网站,有如下的网站架构:
有图书分类,下面再有中国图书,外国图书分类,则一般可以用树形或者asp.net 2.0的新增加的导航栏控件
(sitemap),来实现,比如

图书--->中国图书;
图书---->外国图书
等,而如果这个时候,能在页面的部分,也能显示比如"图书-->中国图书"这样,那就更加直观明显了,<br>在asp.net 2.0中,我们可以使用<head>部分的服务端控件来实现了,首先,要添加标记<br><head runat="server"></p> <p>然后可以在page_load事件中,以如下形式改边其title的内容了,如<br>Page.Header.Title = "The current time is: " & DateTime.Now.ToString() <br>,也可以简单写成page.title.</p> <p>然后,我们可以通过这样的办法,将其于sitemap控件结合了,实现方法如下:</p> <p>Const DEFAULT_UNNAMED_PAGE_TITLE As String = "Untitled Page"<br>    Const DEFAULT_PAGE_TITLE As String = "Welcome to my Website!!"</p> <p><br>    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load<br>        'Set the page's title, if needed<br>        If String.IsNullOrEmpty(Page.Title) OrElse Page.Title = DEFAULT_UNNAMED_PAGE_TITLE Then<br>            If SiteMap.CurrentNode Is Nothing Then<br>                Page.Title = DEFAULT_PAGE_TITLE<br>            Else<br>                Page.Title = GetPageTitleBasedOnSiteNavigation()</p> <p>                'Can also use the following if you'd rather<br>                'Page.Title = GetPageTitleBasedOnSiteNavigationUsingRecursion(SiteMap.CurrentNode)<br>            End If<br>        End If<br>    End Sub</p> <p>    Private Function GetPageTitleBasedOnSiteNavigation() As String<br>        If SiteMap.CurrentNode Is Nothing Then<br>            Throw New ArgumentException("currentNode cannot be Nothing")<br>        End If</p> <p>        'We are visiting a page defined in the site map - build up the page title<br>        'based on the site map node's place in the hierarchy</p> <p>        Dim output As String = String.Empty<br>        Dim currentNode As SiteMapNode = SiteMap.CurrentNode</p> <p>        While currentNode IsNot Nothing<br>            If output.Length > 0 Then<br>                output = currentNode.Title & " :: " & output<br>            Else<br>                output = currentNode.Title<br>            End If</p> <p>            currentNode = currentNode.ParentNode<br>        End While</p> <p>        Return output<br>    End Function</p> <p>在上面的代码中,首先预定义了两个常量,然后逐步建立sitemap的结点,一开始结点是null的,然后再调用<br>GetPageTitleBasedOnSiteNavigation() 这个过程,在每建立一个sitemap的结点时,用字符串进行连接,最后返回给page.title即可实现,当然也可以用递归实现</p> <p><br>出处:</p></span> </div> <div class="artmoretabs flexRow"> <p>相关标签:</p> <div class="mtbs flexRow"> <span class="mtbsa flexRow check" title="ASP.NET">ASP.NET</span> </div> </div> <div class="lastanext flexRow"> <a class="lastart flexRow" href="/wz/5925.html" ><span>上一篇:</span><span>一个简单的数据操作类</span></a> <a class="nextart flexRow" href="/wz/5927.html" ><span>下一篇:</span><span>File.Delete不能删除文件的问题</span></a> </div> </div> <div class="dtl-xgtj"> <div class="jb-titles flexRow"> <div class="jbtle-left flexRow"><b></b><p>相关推荐</p></div> </div> <div class="tjlist flexRow"> <div class="tj-item "> <div class="tjitemd"> <div class="tjimd-top flexRow"> <a class="imdta flexRow" href="/wz/365631.html" > <img src="https://images.jiaoben.net/uploads/20260417/logo_69e1ebbf94fdb1.jpeg" > </a> <div class="imdt-right flexColumn"> <a class="imdtra flexRow overflowclass" href="/wz/365631.html" >MyBatis、MyBatis-Plus、JPA、MyBatisGX 写法比较:同一个需求,四种解法</a> <a class="imdtrap flexRow overflowclass" href="/wz/365631.html" > MyBatis、MyBatis-Plus、JPA、MyBatisGX 写法比较:同一个需求,四种解法 场景 1:一个"普通"的用户管理需求 产品经理说,用户模块需要支持: 新增用户 查询用户详情(带出 </a> </div> </div> <div class="tjimd-down flexRow"> <div class="imdd-tab flexRow"> <p class="imddt-time flexRow"><b></b><span>2026-04-17</span></p> </div> <a href="/wz/365631.html" class="imdd-more flexRow flexcenter" >立即查看</a> </div> </div> </div> <div class="tj-item "> <div class="tjitemd"> <div class="tjimd-top flexRow"> <a class="imdta flexRow" href="/wz/365623.html" > <img src="https://images.jiaoben.net/uploads/20260417/logo_69e1eb3a2def91.jpeg" > </a> <div class="imdt-right flexColumn"> <a class="imdtra flexRow overflowclass" href="/wz/365623.html" >【从0到1构建一个ClaudeAgent】并发-后台任务</a> <a class="imdtrap flexRow overflowclass" href="/wz/365623.html" > 有些操作很慢,Agent 不能干等着。例如**长时间编译/构建**:`make`, `mvn c </a> </div> </div> <div class="tjimd-down flexRow"> <div class="imdd-tab flexRow"> <p class="imddt-time flexRow"><b></b><span>2026-04-17</span></p> </div> <a href="/wz/365623.html" class="imdd-more flexRow flexcenter" >立即查看</a> </div> </div> </div> <div class="tj-item "> <div class="tjitemd"> <div class="tjimd-top flexRow"> <a class="imdta flexRow" href="/wz/365565.html" > <img src="https://images.jiaoben.net/uploads/20260417/logo_69e1dc6c2e9ec1.jpeg" > </a> <div class="imdt-right flexColumn"> <a class="imdtra flexRow overflowclass" href="/wz/365565.html" >java2AI系列:SpringAI 通过 Function Calling 接入外部系统</a> <a class="imdtrap flexRow overflowclass" href="/wz/365565.html" > 在做企业级的RAG时,需要投喂外部系统的数据给模型,以生成更符合需要的回答。我们都知道模型的知识是有限的,在训练完成后,它的参数就固定了。大多数的模型,目前还无法自主更新知识库,即不知道训练数据以外的 </a> </div> </div> <div class="tjimd-down flexRow"> <div class="imdd-tab flexRow"> <p class="imddt-time flexRow"><b></b><span>2026-04-17</span></p> </div> <a href="/wz/365565.html" class="imdd-more flexRow flexcenter" >立即查看</a> </div> </div> </div> <div class="tj-item "> <div class="tjitemd"> <div class="tjimd-top flexRow"> <a class="imdta flexRow" href="/wz/365521.html" > <img src="https://images.jiaoben.net/uploads/20260417/logo_69e1cf9d697db1.jpeg" > </a> <div class="imdt-right flexColumn"> <a class="imdtra flexRow overflowclass" href="/wz/365521.html" >深度剖析:Java 并发三大量难题 —— 死锁、活锁、饥饿全解</a> <a class="imdtrap flexRow overflowclass" href="/wz/365521.html" > 本文深入剖析Java并发中三大顽疾:死锁(线程永久阻塞)、活锁(线程忙等无效运行)、饥饿(低优先级线程长期得不到资源)。厘清其本质区别、触发条件、实战案例及jstack/Arthas等排查方案。 </a> </div> </div> <div class="tjimd-down flexRow"> <div class="imdd-tab flexRow"> <p class="imddt-time flexRow"><b></b><span>2026-04-17</span></p> </div> <a href="/wz/365521.html" class="imdd-more flexRow flexcenter" >立即查看</a> </div> </div> </div> </div> </div> </div> <div class="cd-right dtlcd-right"> <div class="dtl-ht"> <div class="jb-titles flexRow"> <div class="jbtle-left flexRow"><b></b><p>专题</p></div> </div> <div class="dtlht-list "> <div class="htl-item flexRow"> <div class="htmitem-left"> <div class="htiteml-top flexRow"> <a href="/wz/zt-69351.html" >#数据可视化</a> <span></span> </div> <a class="htiteml-down flexRow" href="/wz/zt-69351.html" >数据可视化(Data Visu</a> </div> <p class="htmitem-right flexRow flexcenter gz" data-id="69351" >+ 收藏</p> </div> <div class="htl-item flexRow"> <div class="htmitem-left"> <div class="htiteml-top flexRow"> <a href="/wz/zt-69342.html" >#自然语言处理</a> <span></span> </div> <a class="htiteml-down flexRow" href="/wz/zt-69342.html" >自然语言处理(Natural</a> </div> <p class="htmitem-right flexRow flexcenter gz" data-id="69342" >+ 收藏</p> </div> <div class="htl-item flexRow"> <div class="htmitem-left"> <div class="htiteml-top flexRow"> <a href="/wz/zt-68363.html" >#Excel公式</a> <span></span> </div> <a class="htiteml-down flexRow" href="/wz/zt-68363.html" >Excel公式就是:用函数 +</a> </div> <p class="htmitem-right flexRow flexcenter gz" data-id="68363" >+ 收藏</p> </div> <div class="htl-item flexRow"> <div class="htmitem-left"> <div class="htiteml-top flexRow"> <a href="/wz/zt-68355.html" >#Excel技巧</a> <span></span> </div> <a class="htiteml-down flexRow" href="/wz/zt-68355.html" >Excel是日常生活中必不可</a> </div> <p class="htmitem-right flexRow flexcenter gz" data-id="68355" >+ 收藏</p> </div> <div class="htl-item flexRow"> <div class="htmitem-left"> <div class="htiteml-top flexRow"> <a href="/wz/zt-68081.html" >#蛋仔派对</a> <span></span> </div> <a class="htiteml-down flexRow" href="/wz/zt-68081.html" >蛋仔派对最新官方活动、关卡速</a> </div> <p class="htmitem-right flexRow flexcenter gz" data-id="68081" >+ 收藏</p> </div> <div class="htl-item flexRow"> <div class="htmitem-left"> <div class="htiteml-top flexRow"> <a href="/wz/zt-68000.html" >#人工智能</a> <span></span> </div> <a class="htiteml-down flexRow" href="/wz/zt-68000.html" >人工智能(AI),简单说,就</a> </div> <p class="htmitem-right flexRow flexcenter gz" data-id="68000" >+ 收藏</p> </div> </div> </div> <div class=" dtl-zt"> <div class="jb-titles flexRow"> <div class="jbtle-left flexRow"><b></b><p>最新数据</p></div> </div> <div class="wkch-downs"> <div class="weekch-top flexRow"> <a class="wktpa flexRow" href="/wz/5932.html" > <img src="/jiaoben/image/noimg.png" > </a> <div class="wktpa-right flexColumn"> <a class="wktpara flexRow overflowclass" href="/wz/5932.html" >ASP.NET MasterPage 中图片路径的解决办法</a> <a class="wktparp flexRow overflowclass" href="/wz/5932.html" > 一般而言,链接路径的表达有三 </a> </div> </div> <div class="weekch-list"> <div class="weekch-con flexRow"> <div class="weekch-icon flexRow"><b></b></div> <a href="/wz/5931.html" class="weekcha flexRow flexcenter overflowclass" >Access 通用数据访问类(asp.net 2.0 c#)</a> </div> <div class="weekch-con flexRow"> <div class="weekch-icon flexRow"><b></b></div> <a href="/wz/5930.html" class="weekcha flexRow flexcenter overflowclass" >asp.net 生成图片验证码</a> </div> <div class="weekch-con flexRow"> <div class="weekch-icon flexRow"><b></b></div> <a href="/wz/5929.html" class="weekcha flexRow flexcenter overflowclass" >把WebForm数据导出到Excel中 </a> </div> <div class="weekch-con flexRow"> <div class="weekch-icon flexRow"><b></b></div> <a href="/wz/5928.html" class="weekcha flexRow flexcenter overflowclass" >通过改善架构来提高 ASP.Net 应用程序的性能</a> </div> <div class="weekch-con flexRow"> <div class="weekch-icon flexRow"><b></b></div> <a href="/wz/5924.html" class="weekcha flexRow flexcenter overflowclass" >解决ASP.NET的进程帐户没有访问 IIS的权限</a> </div> <div class="weekch-con flexRow"> <div class="weekch-icon flexRow"><b></b></div> <a href="/wz/5923.html" class="weekcha flexRow flexcenter overflowclass" >使用ASP.NET Atlas开发检测密码强度的自定义Behavior</a> </div> <div class="weekch-con flexRow"> <div class="weekch-icon flexRow"><b></b></div> <a href="/wz/5922.html" class="weekcha flexRow flexcenter overflowclass" >在ASP.NET Atlas中调用Web Service—处理错误,超时以及响应用户的取消操作</a> </div> <div class="weekch-con flexRow"> <div class="weekch-icon flexRow"><b></b></div> <a href="/wz/5921.html" class="weekcha flexRow flexcenter overflowclass" >无限级分类的非递归实现(存储过程版) </a> </div> <div class="weekch-con flexRow"> <div class="weekch-icon flexRow"><b></b></div> <a href="/wz/5920.html" class="weekcha flexRow flexcenter overflowclass" >GridView中利用隐藏的TemplateFied来进行数据访问</a> </div> </div> </div> </div> <div class=" dtl-wz"> <div class="jb-titles flexRow"> <div class="jbtle-left flexRow"><b></b><p>相关文章</p></div> </div> <div class="blog-list"> <a href="/wz/257494.html" class="bloga flexRow over"><p class="overflowclass">详解.NET Core如何构建一个弹性的HTTP请求机制</p><div class="blogtime"><span>08/</span>27</div></a> <a href="/wz/257496.html" class="bloga flexRow over"><p class="overflowclass">.NET Core使用Redis实现创建分布式锁</p><div class="blogtime"><span>08/</span>27</div></a> <a href="/wz/257498.html" class="bloga flexRow over"><p class="overflowclass">.NET内存管理释放的两种方式</p><div class="blogtime"><span>08/</span>27</div></a> <a href="/wz/257501.html" class="bloga flexRow over"><p class="overflowclass">基于.NET8实现WinFrom应用窗口自动缩放功能</p><div class="blogtime"><span>08/</span>27</div></a> <a href="/wz/257504.html" class="bloga flexRow over"><p class="overflowclass">浅析如何在 ASP.NET Core中实现速率限制</p><div class="blogtime"><span>08/</span>27</div></a> <a href="/wz/257507.html" class="bloga flexRow over"><p class="overflowclass">.NET Core 委托原理解析(最新推荐)</p><div class="blogtime"><span>08/</span>27</div></a> <a href="/wz/257509.html" class="bloga flexRow over"><p class="overflowclass">.NET 9 new features-Microsoft.ML.Tokenizers 库(文本标记化功能)</p><div class="blogtime"><span>08/</span>27</div></a> <a href="/wz/257512.html" class="bloga flexRow over"><p class="overflowclass">如何在 .NET 中使用 Tesseract 识别图片文字</p><div class="blogtime"><span>08/</span>27</div></a> <a href="/wz/257516.html" class="bloga flexRow over"><p class="overflowclass">ASP.NET Core Web API之Token验证的实现</p><div class="blogtime"><span>08/</span>27</div></a> <a href="/wz/257517.html" class="bloga flexRow over"><p class="overflowclass">asp.net core web api项目添加自定义中间件的实现</p><div class="blogtime"><span>08/</span>27</div></a> </div> </div> <div class="cdr-ai"> <div class="jb-titles flexRow"> <div class="jbtle-left flexRow"><b></b><p>AI精选 </p></div> <a class="jbtitle-more flexRow" href="/category/list_344_1.html" title=""><span>更多</span><b></b></a> </div> <div class="ai-list"> <div class="ail-top flexRow"> <a href="/wz/367770.html" title="" class="ailta "> <img src="https://images.jiaoben.net/uploads/20260418/logo_69e2d9b9bdbef1.jpg" > <p ><span>结构仿生提示词下的时尚编辑摄</span></p></a> <a href="/wz/367731.html" title="" class="ailta "> <img src="https://images.jiaoben.net/uploads/20260418/logo_69e2cd43c00221.jpg" > <p ><span>模型清洁迷你我比例模型提示</span></p></a> </div> <div class="ail-down"> <a class="ali-con flexRow" href="/wz/367730.html" title=""> <div class="alicon-left flexRow"><span>精选</span></div> <p class="aliconp overflowclass">Ana de Armas 护肤品影响者肖像提示</p> </a> <a class="ali-con flexRow" href="/wz/367722.html" title=""> <div class="alicon-left flexRow"><span>精选</span></div> <p class="aliconp overflowclass">吉普车引擎盖上的超逼真电影肖像</p> </a> <a class="ali-con flexRow" href="/wz/367711.html" title=""> <div class="alicon-left flexRow"><span>精选</span></div> <p class="aliconp overflowclass">单色粉色影棚时尚肖像</p> </a> <a class="ali-con flexRow" href="/wz/367710.html" title=""> <div class="alicon-left flexRow"><span>精选</span></div> <p class="aliconp overflowclass">超现实电影感时尚肖像 (Billie Eilish)</p> </a> <a class="ali-con flexRow" href="/wz/367699.html" title=""> <div class="alicon-left flexRow"><span>精选</span></div> <p class="aliconp overflowclass">Nano Banana Pro 发布公告</p> </a> <a class="ali-con flexRow" href="/wz/366175.html" title=""> <div class="alicon-left flexRow"><span>精选</span></div> <p class="aliconp overflowclass">赛博朋克 K-Pop 动画</p> </a> <a class="ali-con flexRow" href="/wz/366174.html" title=""> <div class="alicon-left flexRow"><span>精选</span></div> <p class="aliconp overflowclass">冰川星球大逃亡</p> </a> <a class="ali-con flexRow" href="/wz/366173.html" title=""> <div class="alicon-left flexRow"><span>精选</span></div> <p class="aliconp overflowclass">皮克斯/迪士尼风格 X (Twitter) 个人资料卡片提示</p> </a> </div> </div> </div> <div class="cdr-blog"> <div class="jb-titles flexRow"> <div class="jbtle-left flexRow"><b></b><p>脚本推荐</p></div> </div> <div class="blog-list"> <a href="/wz/zt-49225.html" title="" class="bloga flexRow over"><p class="overflowclass">SeeDance 2.0 Video Creator专区</p></a> <a href="/wz/zt-49224.html" title="" class="bloga flexRow over"><p class="overflowclass">OpenClaw AI专区</p></a> <a href="/wz/zt-49223.html" title="" class="bloga flexRow over"><p class="overflowclass">cowork专区</p></a> <a href="/wz/zt-49222.html" title="" class="bloga flexRow over"><p class="overflowclass">claude code skills专区</p></a> </div> </div> </div> </div> </div> </div> </main> <script> $(function() { // “+ 收藏”按钮点击事件 $(document).on('click', '.htmitem-right, .ztop-right', function(e) { // 仅针对包含 “+ 收藏” 文字的按钮 if ($(this).text().indexOf('+ 收藏') === -1) return; e.preventDefault(); const id = $(this).data('id'); if (!id) { layer.msg('该项暂无有效ID,无法收藏'); return; } // 构造收藏 URL: 当前域名 + /wz/zt- + id + / const bookmarkUrl = window.location.origin + '/wz/zt-' + id + '.html'; // 获取收藏标题 (优先从同级元素获取话题名称,否则使用页面标题) let bookmarkTitle = $(this).closest('.htl-item, .zttopd').find('a:first, span.overflowclass').text().trim() || document.title; if (bookmarkTitle.startsWith('#')) bookmarkTitle = bookmarkTitle.substring(1); // 浏览器收藏逻辑 (带 Fallback) try { if (window.sidebar && window.sidebar.addPanel) { // Firefox < 23 window.sidebar.addPanel(bookmarkTitle, bookmarkUrl, ""); } else if (window.external && ('AddFavorite' in window.external)) { // IE window.external.AddFavorite(bookmarkUrl, bookmarkTitle); } else { // Chrome, Safari, Firefox 23+, etc. const isMac = /Mac/i.test(navigator.userAgent); const keyStr = isMac ? 'Command + D' : 'Ctrl + D'; layer.confirm('由于浏览器安全限制,请使用 <b>' + keyStr + '</b> 手动添加收藏。<br><br>收藏地址:<br><small>' + bookmarkUrl + '</small>', { title: '收藏提示', btn: ['复制链接', '知道了'], yes: function(index) { copyToClipboard(bookmarkUrl).then(() => { layer.msg('链接已复制,请手动添加到收藏夹'); }).catch(() => { layer.msg('复制失败,请手动选择复制'); }); layer.close(index); } }); } } catch (err) { layer.msg('收藏失败,请手动添加'); } }); // 兼容非 HTTPS 的复制函数 function copyToClipboard(text) { if (navigator.clipboard && window.isSecureContext) { return navigator.clipboard.writeText(text); } else { let textArea = document.createElement("textarea"); textArea.value = text; textArea.style.position = "fixed"; textArea.style.left = "-999999px"; textArea.style.top = "-999999px"; document.body.appendChild(textArea); textArea.focus(); textArea.select(); return new Promise((res, rej) => { document.execCommand('copy') ? res() : rej(); textArea.remove(); }); } } }); </script> <footer> <div class="foot "> <div class="foot-top flexRow"> <div class="foot-left"> <div class="ftl-top flexRow"><span class="flexRow flexcenter">脚本</span>在线</div> <p class="ftl-down"> 智能赋能梦想,脚本构筑现实。我们致力于链接AI智能指令 与传统自动化,为您提供一站式、高效率的脚 本资产与生成 服务。 </p> </div> <div class="foot-right flexRow"> <div class="ftr-list flexColumn"> <p>核心板块</p> <span>AI脚本库</span> <span>自动化仓库</span> <span>脚本实验室</span> </div> <div class="ftr-list flexColumn"> <p>关于我们</p> <a href="/category/list_229_1.html" >最新游戏</a> <span>商务合作</span> <span>隐私政策</span> </div> <div class="ftr-list flexColumn"> <p>社区支持</p> <span >API文档</span> <a href="/category/list_334_1.html" >攻略资讯</a> <span>违规举报</span> </div> </div> </div> <div class="foot-down flexColumn"> <p>© 2026 jiaoben.net | 脚本在线 | 联系:jiaobennet2026@163.com</p> <p>备案:<a style="color: #7F7F7F;" href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">湘ICP备18025217号-11</a> </p> </div> </div> </footer> <div style="display:none;"> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?5d3cfe1f36b1988029fe82a0d475b20d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </div> </body> </html>