动态<;标题>;asp.net内联代码中的标记

动态<;标题>;asp.net内联代码中的标记,asp.net,inline-code,Asp.net,Inline Code,我遇到了一个奇怪的问题,我正在想办法解决。基本上,我工作的公司使用CMS,它只允许ASP.net的内联代码,并使用“样式”系统来做页眉/页脚之类的事情 现在我的问题是在显示课程信息的某个页面上,我们有一些asp.net代码,它根据上一个链接页面的因素生成页面,即课程搜索页面,然后将您带到您选择的课程 现在我们已经有了糟糕的SEO,我需要能够根据课程搜索中的选择动态创建页面的标题/元标记 问题是对于SEO,我需要标题标签在标题中,但该页面的可识别信息在asp.net代码中,该代码从数据库获取课程信

我遇到了一个奇怪的问题,我正在想办法解决。基本上,我工作的公司使用CMS,它只允许ASP.net的内联代码,并使用“样式”系统来做页眉/页脚之类的事情

现在我的问题是在显示课程信息的某个页面上,我们有一些asp.net代码,它根据上一个链接页面的因素生成页面,即课程搜索页面,然后将您带到您选择的课程

现在我们已经有了糟糕的SEO,我需要能够根据课程搜索中的选择动态创建页面的标题/元标记

问题是对于SEO,我需要标题标签在标题中,但该页面的可识别信息在asp.net代码中,该代码从数据库获取课程信息,并在页面正文中运行

有没有办法获取信息或在标题处运行另一段asp.net代码来设置所需的标记

我道歉,如果这没有多大意义,但我们的CMS系统使一切更加困难,但我无法删除它


谢谢

将占位符放在head标记中,并使用下面的代码从后面的代码添加元标记

HtmlMeta meta = new HtmlMeta();
meta.Attributes.Add("property", "og:title");
meta.Attributes.Add("content", lblBannerTitle.Text.Length > 68 ? lblBannerTitle.Text.Substring(0, 68) : lblBannerTitle.Text);
MetaPlaceHolder.Controls.Add(meta);
这样,您可以拥有任意数量的元标记。 只需确保Title meta tag max length为68,description meta tag max length为148


让我知道它是否适用于您的案例。

因此,如果我理解正确,您希望将
标记添加到呈现页面的服务器端代码中的
标记吗

如果您使用的是ASP.NET 2.0或更高版本,则可以通过在声明中添加
runat=“server”
,将
元素更改为服务器代码可以访问。然后,您可以通过页面的title属性设置标题值

要添加
标记,您需要运行ASP.NET 4.0,它将
元关键字
元描述
属性添加到页面对象

因此,要将这些放在一起,您的页面标记应该包括:

<% Page ... %>
<html>
    <head runat="server">
    ...
    </head>
    <body>
    ...
然后应呈现为:

 <html>
     <head>
         <title>My course page</title>
         <meta name="description" content="My Page for Course X" />
         <meta name="keywords" content="course, education, learning" />
 ....

我的课程页面
....

我不明白你想做什么。也许一个有一些代码的例子会有所帮助。这就是我想说的,但我认为你已经一针见血了。谢谢你证实我的怀疑。只是补充一句,这已经非常有效了,所以非常感谢你。
 <html>
     <head>
         <title>My course page</title>
         <meta name="description" content="My Page for Course X" />
         <meta name="keywords" content="course, education, learning" />
 ....