2014-02-18 22 views
2

在我的母版页(.aspx文件)我有这个< div>显示页面标题:如何从站点地图文件获取当前页面标题?

<div class="header"> 
<h1> PAGE TITLE GOES HERE </h1> 
</div> 

我也有拥有一些页面(细节并不是所有的页面在Web.sitemap文件我的应用程序)

我应该在<h1></h1>之间放置什么,以便让母版页动态显示当前页面的页面标题,并且如果当前页面不在网站地图中或没有标题,则会放置一些默认字符串,如“DEFAULT TITLE”

+0

'Title'是[的SiteMapNode]属性(http://msdn.microsoft.com/en-us/library/ system.web.sitemapnode(v = vs.110)的.aspx)。你有没有试过访问'SiteMap.CurrentNode'? – MikeSmithDev

+0

@MikeSmithDev我试图把

<%SiteMap.CurrentNode.Title%>

但得到错误 –

+0

可能是因为'CurrentNode'为null(网址不在网站地图)。请参阅下面的答案。 – MikeSmithDev

回答

3

如果你想成为l AZY它在你.aspx文件不关心代码,简单地说:

<h1><%= SiteMap.CurrentNode != null ? SiteMap.CurrentNode.Title : "not in sitemap!" %></h1> 
+0

是的,我是晚饭懒惰,不想把控制之间

标记然后使用如果其他代码在后面。谢谢!我试图把<% %>标签之间如果其他标签弄乱了,这种方法更加清晰! –

+0

基本上只是在aspx中使用'<%:MasterTitle%>'是不“懒惰”的方式,然后在'MasterTitle {get {SiteMap.CurrentNode!= null? ...}}' – Nol

+0

@Nol是的,这是一种方法来做到这一点。或者使用服务器标签......只是让前端更清洁。 – MikeSmithDev