我的网站上有以下HTML:
<meta name="keywords" content="<%=Keywords%>"/>
<meta name="description" content="<%=Description%>"/>
这是我网站的母版页。在母版页背后的代码中,我有:
private String _description = "A default description for my site";
public String Description
{
get { return _description; }
set { _description = value; }
}
private String _keywords = "my Site my Company keywords ";
public String Keywords
{
get {return _keywords; }
set { _keywords = value; }
}
我的想法是,我网站上的所有网页都会有默认的描述/关键字,除非我需要将它们设置为特定网页上的其他内容(使用Master.Description = "whatever"
)。
但是,我遇到了一些问题:内联代码块删除的左括号在生成的HTML中被转义,因此代码块不起作用。以下是为我的页面生成的html的摘录:
<meta name="keywords" content="<%=Keywords%>" /><meta name="description" content="<%=Description%>" />
我习惯使用C#,但我是asp.net的新手,我无法找到正确的语法来使其正常工作。我需要做些什么才能使内联代码块正常工作?
答案 0 :(得分:1)
运行控制服务器端并在其中分配值:
<meta name="keywords" id="keywords" runat="server" />
<meta name="description" id="desc" runat="server" />
keywords.Attributes("content") = Keywords;
desc.Attributes("content") = Description;
答案 1 :(得分:0)
使用简单/单一绑定表达。
<meta name="keywords" content="<%# Keywords%>"/>
<meta name="description" content="<%# Description%>"/>
在代码隐藏中发布DataBind()
方法:
if(!IsPostBack)
DataBind();