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

RazorLight渲染HTML字符串时如何让br标签作为文本显示不换行

问题原因

你当前使用RazorLight.Text.RawString返回内容时,Razor引擎会直接将内容作为原生HTML渲染,因此Value中包含的<br>标签会被浏览器解析为换行效果,不符合你要作为普通文本展示的需求。

修改方案

你需要先对Value做HTML转义处理,将特殊HTML字符转换为实体编码后,再拼入HTML结构,这样所有HTML标签都会被当作普通文本展示,修改后的代码如下:

public RazorLight.Text.RawString PrintValueOrEmpty()
{
    if (Value == null)
    {
        return new RazorLight.Text.RawString(string.Empty);
    }

    // 对Value内容做HTML转义,避免内部标签被解析执行
    string encodedValue = System.Net.WebUtility.HtmlEncode(Value);
    var html = $@"<p class=""text-row"">{encodedValue}</p>";
    return new RazorLight.Text.RawString(html);
}
可选适配场景

如果你仅需要屏蔽<br>标签的解析,其余HTML标签仍需正常渲染,可以替换全量转义逻辑为针对性替换:

// 兼容不同写法的br标签
string processedValue = Value
    .Replace("<br>", "&lt;br&gt;")
    .Replace("<br/>", "&lt;br/&gt;")
    .Replace("<br />", "&lt;br /&gt;");

修改后无需调整cshtml中的调用代码,直接生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:39:03