在 .net 核心视图 (Razor) 中,现在所有非英语字符都会自动转换为适当的十六进制代码。
现在所有从模型或变量等中获取的俄文文本将如下所示:
Мы не #x441;мо ...
要获得普通的俄语文本,您需要使用 Html.Raw () 显示其值
也就是说,如果我在控制器中分配一个变量
string txt="текст на русском";
在我看来,我会写
Смотрите это: @txt
然后在 html 标记中我会看到:
смотрите это: Мыне#x441;можем
如果我们使用像这样的标准结构
<input id="chk-parts-agree" asp-for="Agree" class="form-check-input"/>
然后从模型中自动转换所有带有俄语验证的文本,我们得到
<input class="form-check-input" data-val="true" data-val-required="Мы не сможем связаться с вами, если в#x44B; не дадите согласие на хранение и обработку ваших персональных данных (Телефон и ФИО)" id="chk-service-agree" name="Agree" type="checkbox" value="true" />
当然,最终用户不会有任何改变,他会在页面上看到正确的俄文文本,但 html 本身正在显着增长。
如何向 .net 核心“解释”拉丁字符“不危险”并且在与“&<>”字符等一起输出时不应替换?
一般来说,像以前一样......