以编程方式从Razor更改DNN中的页面标题

时间:2014-03-31 12:21:52

标签: asp.net razor dotnetnuke

我经常搜索"如何以编程方式更改标题"并且只有这个结果不起作用,至少在Razor脚本中

DotNetNuke.Framework.CDefault tp = (DotNetNuke.Framework.CDefault)this.Page;
tp.Title = "New Title Here";

这在剃刀主机脚本中不起作用,还有其他解决方案可以从Razor主机脚本更改页面标题吗?

3 个答案:

答案 0 :(得分:4)

经过多次试验并合并其他代码后,我找到了解决方案

使用此功能可以访问页面访问权限,因此您可以随意使用它,更改标题等。

var pageObj = Context.CurrentHandler as Page;
pageObj.Title = "My New Title for the page";

此代码将允许访问DNN页面,因此您可以插入控件等。

DotNetNuke.Framework.CDefault tp = (DotNetNuke.Framework.CDefault)Context.CurrentHandler;
tp.FindControl("Head").Controls.Add(NewControlObj);

答案 1 :(得分:1)

我只想在Pola的回答中添加一些有望“开箱即用”的内容。

很难找到直接使用DNN的示例,因此我提交以下内容;

@{
System.Web.UI.HtmlControls.HtmlMeta objMetaDescription = new System.Web.UI.HtmlControls.HtmlMeta();
objMetaDescription.Name = "DESCRIPTION";
objMetaDescription.Content = "This will be the meta description content";

DotNetNuke.Framework.CDefault tp = (DotNetNuke.Framework.CDefault)Context.CurrentHandler;
tp.FindControl("Head").Controls.Add(objMetaDescription);
}

答案 2 :(得分:0)

这是我的唯一方式:

((DotNetNuke.Framework.CDefault)this.Page).Title = "your title";