ASP.NET中如何让HTML正确渲染分号后的换行?
解决代码分号后插入HTML换行的问题
核心问题是Razor会自动编码输出的HTML内容,你追加的<br>标签被转义成了<br>,因此无法被浏览器解析为换行。
解决方案1:使用Html.Raw()跳过编码
输出StringBuilder结果时,用Html.Raw()包裹,让Razor不对内容进行HTML编码:
@if(code != string.Empty) { var str = new StringBuilder(); foreach(var c in code) { str.Append(c); if(c == ';') { str.Append("<br>"); // 直接写入<br>即可,无需转义 } } <p style="text-align:justify;">@Html.Raw(str)</p> }
解决方案2:转换为MvcHtmlString
将StringBuilder的结果转换为MvcHtmlString类型,同样能避免自动编码:
@if(code != string.Empty) { var str = new StringBuilder(); foreach(var c in code) { str.Append(c); if(c == ';') { str.Append("<br>"); } } var htmlContent = MvcHtmlString.Create(str.ToString()); <p style="text-align:justify;">@htmlContent</p> }
两种方法都能让<br>标签被浏览器正确识别为换行符,替代之前无效的转义写法。
内容的提问来源于stack exchange,提问作者user16612111
相关产品推荐
相关产品推荐

