防止剃刀逃脱属性

时间:2015-05-20 14:53:58

标签: razor encoding canonical-link

我们与ü有一些链接正在编码。例如,Einführung被编码为:

Einführung

通常情况下,当发生这种情况时,我可以使用Html.Raw()来修复它,但是当它在我们的规范链接中使用时,它似乎不尊重Html.Raw()。

对于我的标题:

<title>@Html.Raw(ViewBag.Title)</title>

完美无缺,不对ü进行编码。

对于我的规范链接:

<link rel="canonical" href="@Html.Raw(ViewBag.CanonicalUrl)" />

但这并不妨碍它编码ü。

作为测试,我尝试了这个:

<link rel="canonical" href="ü" />

并没有对它进行编码,似乎证实剃刀正在这样做,而不是进一步的线程。

如何让它停止?

1 个答案:

答案 0 :(得分:1)

显然它与属性有关,它必须将属性编码为一个单独的步骤。

我能够通过Html.Raw()修复它,如下所示:

@Html.Raw("<link rel='canonical' href='" + ViewBag.CanonicalUrl + "' />");

现在它没有将其视为属性,因此它不会尝试对其进行编码。