【问题标题】:Old ASP.NET webform has some inline code getting encoded :(旧的 ASP.NET 网络表单有一些内联代码被编码:(
【发布时间】:2011-08-09 22:59:28
【问题描述】:
我有一个 ASP.NET 网络表单站点,在母版页上有一些内联代码..
<meta property="og:title" content="<%=HeadTitle %>"/>
但它将该行渲染为..
<meta property="og:title" content="&lt;%=HeadTitle %>" />
在代码隐藏中,我有以下...
protected string HeadTitle { get; set; }
谁能帮忙?
【问题讨论】:
标签:
c#
asp.net
webforms
inline-code
【解决方案1】:
从母版页的<head> 标记中删除runat="server" 属性。
【解决方案2】:
我更喜欢的方法是在后面的代码中设置meta的值。
protected void myMeta(string myTitle, string myContent)
{
Page.Title = myTitle;
if ((Page.Header != null) && (Page.Header.Controls.Count > 0))
{
Page.Header.Controls.AddAt(1, new HtmlMeta("content", myContent));
}
}
.aspx 本身只有普通标签
<head id="myHead" runat="server">
<title></title>
</head>
【解决方案3】:
如果它在<head> 和runat="server" 中,您可以删除runat="server" 部分,或者您可以将<%= 更改为<%# 并从Page_Load 中调用Header.DataBind();