动态插入元标记 - Asp.net / SQL Server

时间:2014-05-01 11:07:30

标签: c# asp.net sql-server

我正在为我的网站创建一个迷你cms。我想创建一个页面管理员,让用户创建页面并向他们的页面添加元标记。所以我用这些列创建了一个SQL Server数据库表:

   [PageName](primary key)
  ,[Body] - used to pull the html of the page from the sql database
  ,[Title]
  ,[Description] - meta description
  ,[Keywords] - meta keywords

我使用pagename列创建了查询字符串。到目前为止,我可以让身体显示但没有一个元信息。这是我到目前为止所得到的:

<asp:Repeater runat="server" ID="Repeater1" DataSourceID="BodyContent">
    <ItemTemplate>
        <asp:Label ID="lblPage" runat="server" Text='<%# Eval("Body") %>' />
    </ItemTemplate>
</asp:Repeater>

因此,例如我的查询字符串将是/c.aspx?pagename=test - 这会正确地提取正文内容,但没有别的。

SqlDataSource

<asp:SqlDataSource ID="BodyContent" runat="server" 
     ConnectionString="<%$ ConnectionStrings:testDb %>" 
     SelectCommand="SELECT [PageName], [Body], [Title], [Description], [Keywords] FROM [PageAdmin] WHERE ([PageName] = @PageName)">
    <SelectParameters>
        <asp:QueryStringParameter Name="PageName" QueryStringField="PageName" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

如何从数据库中提取标题,关键字和说明?

由于

2 个答案:

答案 0 :(得分:0)

凭借执行的查询,它们已经包含在SqlDataSource中;

  

SELECT [PageName],[Body],[Title],[Description],[Keywords]

然后你可以用同样的方式引用它们;

  <ItemTemplate>
        <asp:Label ID="lblTitle" runat="server" Text='<%# Eval("Title") %>' />
  </ItemTemplate>

答案 1 :(得分:0)

您可以在代码文件中添加元标记

Page.Title = "Your Page title";
//Page description
HtmlMeta pagedesc = new HtmlMeta();
pagedesc.Name = "Description";
pagedesc.Content = textbox2.Text;

Header.Controls.Add(pagedesc);
//page keywords
HtmlMeta pagekeywords = new HtmlMeta();
pagekeywords.Name = "keywords";

pagekeywords.Content = textbox1.Text;
Header.Controls.Add(pagekeywords);

在cms中使用文本框添加元关键字,使用另一个文本框添加元标记。用逗号分隔每个meta关键字。

相关问题