You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework迁移至.NET Core后视图换行符异常求助

问题原因

.NET Core和.NET Framework在IHtmlContent的输出逻辑上存在细节差异:直接通过字符串插值配合Html.Raw输出含换行符的内容时,.NET Core会把字符串中的换行符转义成字面量\n,而非像.NET Framework那样保留实际的换行格式。这是两个框架对原始HTML内容编码处理的实现不同导致的,虽然不影响浏览器渲染,但会破坏单元测试的预期结果。

解决方案

推荐使用.NET Core官方推荐的HtmlContentBuilder来构造HTML内容,避免字符串插值带来的转义问题:

public static async Task<IHtmlContent> InlineStyle(this IHtmlHelper htmlHelper, string componentName)
{
    var styling = await File.ReadAllTextAsync($"wwwroot/css/{componentName}.css");
    var contentBuilder = new HtmlContentBuilder();
    contentBuilder.AppendHtml("<style>");
    contentBuilder.Append(styling);
    contentBuilder.AppendHtml("</style>");
    return contentBuilder;
}

也可以尝试统一文件换行符格式(将CSS文件转为CRLF或LF),但前者是更可靠的解决方式,因为它完全遵循.NET Core的HTML内容构造规范。

内容的提问来源于stack exchange,提问作者Andy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:14:55