我正在将一个asp应用程序从dotnet framework过渡到dotnet core,在这个过程中,我的一些视图开始返回奇怪的返回,其中混合了换行符和\n。
我的代码:
public static async Task<IHtmlContent> InlineStyle(this IHtmlHelper htmlHelper, string componentName)
{
var styling = await File.ReadAllTextAsync($"wwwroot/css/{componentName}.css");
return htmlHelper.Raw($"<style>{styling}</style>");
}
我的看法:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
@await Html.InlineStyle("document-styles")
<meta charset="utf-8" />
</head>
...
我的样式表看起来像这样:
body {
font-size: 18px;
color: #FFFFFF;
font-family: "Nunito Sans", Helvetica, Arial, sans-serif;
line-height: 1;
}
在过去,页面将返回如下:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
body {
font-size: 18px;
color: #FFFFFF;
font-family: "Nunito Sans", Helvetica, Arial, sans-serif;
line-height: 1;
}
</style>
<meta charset="utf-8" />
</head>
但现在它返回为:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>\nbody {\nfont-size: 18px;\ncolor: #FFFFFF;\nfont-family: "Nunito Sans",\nHelvetica, Arial, sans-serif;\nline-height: 1;\n}\n</style>
<meta charset="utf-8" />
</head>
浏览器仍然可以正确地呈现它,但是单元测试现在失败了,因为返回的内容无效。我猜这是因为编码,因为我遇到了类似的问题。有谁知道是什么原因导致的吗?
1条答案
按热度按时间tyu7yeag1#
对不起,我不能发表评论(尚未),所以必须张贴作为一个答案。这听起来确实像是一个编码问题,可能有一些原因导致它。我以前也遇到过类似的问题。您是否尝试手动替换新行字符?