c# - 如何不对asp.net核心中的整个字符串进行编码
问题描述
我正在尝试打印文本并将所有“\r\n”替换为“<br/>”,但输出返回“<br/>”。那么如何不对文本进行编码,而不是对“<br/>”部分进行编码呢?
我可以使用@Html.Raw,但我不想对每个文本都这样做。
本地化访问器:
public string this[string name, bool global = false]
{
get
{
ILocalizationValue result = default;
if (global)
{
result = GetAsync(null, name).Result;
}
else
{
result = GetAsync(name).Result;
}
return result.HtmlValue.Replace("\r\n", "<br/>");
}
}
HtmlValue 是 HtmlString.Value
看法:
@_local["ParNewSite"]
Html : prosessen smertefri og rask.<br/><br/>Alle har
解决方案
我强烈建议将字符串视为纯文本或 html 编码文本。您已经创建了一个部分是 html 编码('<br/>')和部分纯文本的字符串。这不能以真正可靠的方式工作。(如果你得到 '<br/>' 作为用户输入呢?)。
解决方案:就地进行所有转换:
var html = HttpUtility.HtmlEncode(plainTextMultiLineString).Replace("\r\n", "<br/>");
请参阅:https ://docs.microsoft.com/en-us/dotnet/api/system.web.httputility.htmlencode?view=net-5.0
推荐阅读
- database - Firestore:在多个文档中搜索关键字
- arrays - 即使只有一条记录未遵循架构,pyspark.sql 的explode() 也无法按预期工作
- c# - Xamarin 中项目列表的 ItemTemplate
- python - 具有整数 ID 与 Python 中的字符串相关
- c - 如何在 if 语句中检查函数返回值而不调用它
- google-cloud-firestore - Firestore 时间戳同一天条件
- python - 在熊猫中,我可以在基于特定行值分配值时避免循环吗?
- java - 从Java中的字符串中获取特定子字符串的问题
- r - 在计算 GLM 的置信区间时如何指定离散参数?
- node.js - Nodejs,续集连接池的最佳参数?