转义asp.net中的内联代码块
本文关键字:代码 asp net 转义 | 更新日期: 2023-09-27 18:11:27
我的网站上有以下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的新手,我不能找出正确的语法来让它正确工作。我需要做些什么来获得内联代码块工作正确?
在服务器端运行控件并在那里赋值:
<meta name="keywords" id="keywords" runat="server" />
<meta name="description" id="desc" runat="server" />
keywords.Attributes("content") = Keywords;
desc.Attributes("content") = Description;
使用简单/单一绑定表达式
<meta name="keywords" content="<%# Keywords%>"/>
<meta name="description" content="<%# Description%>"/>
在code-behind:
中发出DataBind()
方法 if(!IsPostBack)
DataBind();