Razor默认对字符串进行编码。没有编码的渲染有什么特殊的语法吗?


当前回答

对于ActionLink,它通常使用HttpUtility。对链接文本进行编码。 这样的话 你可以使用 HttpUtility.HtmlDecode (myString) 它为我工作时使用HtmlActionLink解码字符串,我想传递。例如:

@Html ActionLink (HttpUtility . HtmlDecode(“myString”、“ActionName……)

其他回答

@(new HtmlString(myString))

对于ActionLink,它通常使用HttpUtility。对链接文本进行编码。 这样的话 你可以使用 HttpUtility.HtmlDecode (myString) 它为我工作时使用HtmlActionLink解码字符串,我想传递。例如:

@Html ActionLink (HttpUtility . HtmlDecode(“myString”、“ActionName……)

请谨慎使用@Html.Raw(),因为您可能会在编码和安全性方面带来更多麻烦。我理解用例,因为我必须自己做这件事,但是要小心……只要避免让所有文本通过即可。例如,只保留/转换特定的字符序列,并始终对其余的字符进行编码:

@Html.Raw(Html.Encode(myString).Replace("\n", "<br/>"))

然后你就可以放心了,你没有创建一个潜在的安全漏洞,任何特殊/外来字符都能在所有浏览器中正确显示。

因为ASP。NET MVC 3,你可以使用:

@Html.Raw(myString)

你也可以使用WriteLiteral方法