gpt4 book ai didi

c# - aspx 页面的内容敏感标题

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:04 26 4
gpt4 key购买 nike

我正在处理一个 Sharepoint 项目,其中有很多我必须处理的不同的 aspx 页面,但我的 ASP.net 知识仍然有限。基本上,Web 应用程序的核心是基于用户数据。让我们保持简单,假设您可以选择不同的用户数据,aspx 页面将根据它呈现内容。

现在跟踪浏览器中的所有选项卡并不总是那么容易。作为解决方案,除了其他(静态)信息外,浏览器选项卡还应在其标题中呈现用户名。我目前的解决方案是在 this 的帮助下以编程方式设置标题邮政。结果,这就是我到目前为止所拥有的:

现有的 aspx-pages 从资源文件中检索一些静态字符串以呈现标题的静态部分。

<asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
<asp:Literal runat="server" text="<%$Resources:UserManager.Resource,GeneralPageTitle%>">
</asp:Literal>
</asp:Content>

现在轮到我根据选定的用户内容调整标题了。我的代码隐藏在 Page_Load 函数中执行必要的操作

protected void Page_Load(object sender, EventArgs e)
{
// (...) some stuff happening here

if (Page.Master != null)
{
var web = SPContext.Current.Web;
var contentPlaceHolder = (ContentPlaceHolder)Page.Master.FindControl("PlaceHolderPageTitle");
if (contentPlaceHolder == null) return;

string oldText = String.Empty;
foreach (var control in contentPlaceHolder.Controls)
{
var textControl = control as ITextControl;
if (textControl != null)
{
oldText += textControl.Text;
}
}

contentPlaceHolder.Controls.Clear();

var literalControl = new LiteralControl();
var userName = web.GetCurrentUserName();
literalControl.Text = String.Format("{0} - {1}", oldText, userName);
contentPlaceHolder.Controls.Add(literalControl);
}
}

当然,由于有很多不同的 aspx 页面,您不会因为代码重复而将此代码放入每个 Page_Load 函数中。但对于这个示例,它可以解决问题。

基本上,是的,这行得通。但它有点hacky。此外,我仍然不喜欢编辑所有 aspx 的代码隐藏文件(有很多)的想法。我宁愿选择更清洁的解决方案。有什么不同的方法可以实现相同的目标吗?

更新

在 SazooCat 的帮助下,我发现您还可以将代码添加到您的自定义母版页 (see this)。好吧,那也行。而且我只需要编辑一个文件。这是好的做法还是 NoGo?

最佳答案

您知道您可以(在代码后面)Page.Title = "My custom title string" 对吗?

哦,如果是一些属性的通用构造,如果你做一个类

public class MyCustomBasePage Inherits Page

然后在 OnLoad 事件中放入 Page.Title = ???

然后你的每一个内容页面都可以继承自MyCustomBasePage例如

Public class MyExamplecontentPage Inherits MyCustomBasePage

跟进评论...如果您在母版页级别设置默认标题并覆盖标题和内容页级别,那么您需要阅读其他条目:How to set Page's Title from a web content page in ASP.NET 3.5

关于c# - aspx 页面的内容敏感标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27252790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com