在Umbraco中包含特殊字符的元描述

4

在使用Umbraco时,当我在元标签和alt文本中使用特殊字符时,遇到了问题。

我使用以下方式进行测试:Meta描述和Alt文本:Test test æøå

然后会生成以下输出:

<meta name="description" content="Test test &#230;&#248;&#229;">

<img src="#" alt="Test test &#230;&#248;&#229;" />

如果我在标题标签和正常内容中插入相同的文本,则输出结果将非常完美。
生成元标记和标题标记的代码如下:
<!DOCTYPE html>
<html lang="da">
<head>
  <meta charset="utf-8">
  <meta name="description" content="@Umbraco.Field("pageDescription")">
  <title>@Umbraco.Field("pageTitle")</title>
</head>

这些文件使用Notepad ++保存为utf-8格式。

如果我直接在HTML中插入æøå,则会显示æøå而没有任何问题。

我也尝试过这个:

<p>@Umbraco.Field("pageDescription")</p>

然后它可以正确显示“æøå”。

有人知道我做错了什么吗?

提前致谢!

// René

1个回答

4
看起来这是Razor的“特性”,它总是会对属性进行HTML编码。参见:Razor - @Html.Raw() still encoding &amp; in meta tag attributes 因此,为了解决这个问题,您可以采取以下措施:
<meta name="description" @Html.Raw("content=\""+ @Umbraco.Field("pageDescription") + "\"") />
<title>@{ var title = new HtmlString(Umbraco.Field("pageTitle").ToString());}@title</title>

这不太美观,但它能正常工作。


嗨,Sebastiaan。你的解决方案输出了这个<meta name="description" "content="Test test æøå">,其中在 content 前面有一个双引号。如果我将其删除,则无法正常工作。有什么建议吗?也许这个问题不是问题,可以看看这个链接:https://our.umbraco.org/forum/umbraco-7/using-umbraco-7/63230-Special-characters-in-meta-and-alt-text你同意吗? - VanDerPrygel
@VanDerPrygel 啊,我明白了,我现在更新了一个更丑陋的解决方案,但它确实有效。我猜事实上这并不重要,但现在你知道怎么做了。 - sebastiaan
你不能只是使用@Html.Raw(Model.Content.GetPropertyValue<string>("pageDescription"))代替这个丑陋的@Umbraco.Field连接吗? - dampee
不行,参见https://dev59.com/d27Xa4cB1Zd3GeqPqobe。 - sebastiaan
еҪ“然пјҢдҪ еҸҜд»ҘдҪҝз”ЁModel.Content.GetPropertyValueд»ЈжӣҝUmbraco.FieldпјҢдҪҶиҝҷ并дёҚжҳҜйҮҚзӮ№гҖӮ - sebastiaan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接