gpt4 book ai didi

c# - 如何使用 HTML unicode 转义来停止 ASP.NET Core 2 MVC 的 Razor 引擎?

转载 作者:行者123 更新时间:2023-11-30 14:46:21 24 4
gpt4 key购买 nike

正常创建一个默认的ASP.NET Core 2 MVC项目,然后稍微修改一下 Action :

public IActionResult About()
{
ViewData["Message"] = "This is Chinese[中文]";
return View();
}

这是 View (About.cshtml):

<h3>@ViewData["Message"]</h3>
<h3>这也是中文</h3>

这是在浏览器中的输出结果:

<h3>This is Chinese[&#x4E2D;&#x6587;]</h3>
<h3>这也是中文</h3>

我发现'@'符号渲染的中文文本是html unicode转义的。问题是如何停止 '@' 符号以转义我的文本?

最佳答案

根据 this article :

By default encoders use a safe list limited to the Basic Latin Unicode range and encode all characters outside of that range as their character code equivalents. This behavior also affects Razor TagHelper and HtmlHelper rendering as it will use the encoders to output your strings.

本文还提供了一种自定义默认 html 编码器的正确方法。将以下注册添加到 Startup.ConfigureServices 方法:

services.AddSingleton<HtmlEncoder>(
HtmlEncoder.Create(allowedRanges: new[] { UnicodeRanges.BasicLatin,
UnicodeRanges.CjkUnifiedIdeographs }));

调整后的html代码如下:

<h3>This is Chinese[中文]</h3>
<h3>这也是中文</h3>

关于c# - 如何使用 HTML unicode 转义来停止 ASP.NET Core 2 MVC 的 Razor 引擎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49366316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com