如果我在ASP.NET中创建一个网站,是否可以通过编程方式将页面标题设置为某个预定义值并添加一些额外信息?例如:
Home Page Title = Site Name
Links Title = Site Name: Links
Stuff Title = Site Name: Stuff
基本上,无论我在网页上定义的主要标题是什么,我想在标题的末尾加上“:Name”,以便在整个网站上保持一致。我正在考虑将它定义为一个ContentPlaceHolder并在它周围包含一些逻辑,但它看起来并不像我想象的那样(AKA,根本没有)。
答案 0 :(得分:0)
Expression Web有动态网页模板(目前我最喜欢的)和母版页。 DWT非常易于使用,完全符合您的要求,可以节省时间。您为整个网站制作了一个DWT(模板页面),然后在该页面中有可编辑的区域,可以对其进行编辑以使您的所有其他页面都是唯一的。此外,Expression Web可与其他MS产品和功能(如Visual Studio和ASP.NET)配合使用。
答案 1 :(得分:0)
这可以回答你的问题: 4guysfromrolla link
答案 2 :(得分:0)
在您的母版页中尝试此操作
protected void Page_Load(object sender, EventArgs e)
{
PreRender += new EventHandler(MasterPage_PreRender);
}
void MasterPage_PreRender(object sender, EventArgs e)
{
Page.Title = "Site Name - " + Page.Title;
}
并将页面标题放在内容页面的@Page指令中(Title =“Blah”使其成为“站点名称 - Blah”)
答案 3 :(得分:0)
如果您使用的是母版页,则Lerxst应该这样做,如果没有,您可以使用BasePage来完成您想要的内容。像这样:
public abstract class BasePage : Page
{
protected abstract string Subtitle { get; }
protected BasePage()
{
Page.Load += (s, e) => { Title = "Site Name: " + Subtitle; };
}}
答案 4 :(得分:0)
虽然Lerkst的答案适用于ASP.NET Webforms,但我试图通过ASP.NET MVC来实现。因此,Site.Master没有代码隐藏页面(因为不应该)。因此,在做了一些研究后,我遇到了t his post by Guillaume Roy,讨论了如何使用ActionFilterAttribute在该数据的设置中使用Controller(并且View是“哑”并且只渲染它)。这允许我将数据插入到视图中,从而完成我想要做的事情。
希望这可以帮助其他人!