我是ASP.NET新手,希望对页面标题有一个asp:content控件,但我希望该值用于标记和页眉。当我尝试用两个具有相同id的标签来做这件事时,它抱怨我没有两个具有相同id的标签。有没有办法通过contentplaceholders来实现这一点,如果不是,在一个页面中两次使用单个参数到masterpage的最简单方法是什么?
答案 0 :(得分:1)
标题实际上是内容页面上的属性,因此您可以执行以下操作:
<%@ Page Language="C#" MasterPageFile="~/default.master" Title="My Content Title" %>
在内容页面上。要将其转换为标题,请在母版页上呈现页面标题:
<h1><%= this.Page.Title %></h3>
答案 1 :(得分:0)
我看到有人刚刚提供了一个(远)更好的答案来解决这个问题。如果您的母版页在多个位置(标题除外)具有相同的内容,则可以使用下面的解决方案。
我能想出的最佳解决方案如下:
为页面标题添加asp:Label
,为希望文本显示的第二个位置添加另一个(使用两个不同的ID,例如:pageTitle
和sameTitle
)
在母版页中添加方法:
public void SetPageTitle(string title)
{
pageTitle.Text = title;
sameTitle.Text = title;
}
在您的内容页面上,调用母版页方法。如果您的内容页面具有母版页,则它具有名为Master
的属性。您现在可以通过内容页SetPageTitle
方法调用PageLoad
方法:
((MyMasterPage) Master).SetPageTitle("My content page");
您也可以在母版页中使用MasterType
指令,查看here了解详情。通过这种方式,您可以获得强类型Master
属性,而无需进行强制转换:
Master.SetPageTitle("My content page");
的问候,
罗纳德
答案 2 :(得分:0)
此外,母版页可以有不同的内容标签(具有不同的ID),如果您希望页面可能会改变页面的各个部分,这是很好的。