Sitefinity-以编程方式设置标题和描述

Jac*_*ues 3 sitefinity

有人知道如何以编程方式设置页面的标题和描述吗?

我已经从Telerik实现了这个解决方案:

public class InternalPageCustom : InternalPage
{
    public InternalPageCustom()
    {
    }

    protected override void SetTitle(Telerik.Cms.ICmsPage page)
    {
        //base.SetTitle(page);
        this.Title = "somevalue";
    }
}
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,基础对象InternalPage仅提供属性Title,对于其他元字段(如描述或关键字)没有任何作用?

雅克

小智 5

当前,我们在页面中尽可能晚地执行此操作,以确保可以确保尤其是对于title标签,可以在需要时替换或附加标题。

    protected override void OnPreRender(EventArgs e)
    {
        var cmsPage = this.Page as CmsPageBase;
        if (cmsPage != null)
        {
            cmsPage.Title = "My Title";
            cmsPage.Header.Controls.Add(new LiteralControl("<meta name=\"keywords\" content=\"my key words" /><meta name=\"description\" content=\"My description\" />"));   
        }

        base.OnPreRender(e);
    }
Run Code Online (Sandbox Code Playgroud)

这种方法的唯一问题是,如果有人在Sitefinity后端中填写任何“描述”或“关键字”,则这两者都会添加。但是,以上内容可以扩展为检查Header.Controls集合中的那些标签并删除/替换它们。