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

ASP.NET MVC视图中如何让字符串内的<br>标签生效实现换行

在ASP.NET MVC视图中让
标签正确解析为换行的解决方法

你遇到的问题根源在于Razor视图引擎默认会对输出字符串做HTML编码,把<br>转成&lt;br&gt;,导致标签被当作普通文本显示。下面是几个实用的解决办法:

方法一:用Html.Raw()输出未编码内容

在视图的表格单元格中,直接用Html.Raw()包裹你的字符串,跳过Razor的自动编码逻辑,让<br>标签被浏览器正常解析:

<td>@Html.Raw(Model.YourNumberList)</td>

假设你处理后的字符串存在模型的YourNumberList属性里,直接按上面的写法即可。

方法二:在控制器中返回MvcHtmlString类型

如果不想在视图里额外写Html.Raw(),可以在控制器里把处理后的字符串转换成MvcHtmlString类型——Razor会自动识别这种类型不需要编码:

// 控制器代码示例
string processedString = "S020050A,S020050B,S020050C,S020050D,S020050E<br>S020050F,S020050G,S020050H,S020050I,S020050J<br>S020050K,S020050L";
// 可以赋值给ViewBag或者模型属性
ViewBag.NumberList = new MvcHtmlString(processedString);

之后在视图里直接输出即可:

<td>@ViewBag.NumberList</td>

补充:Environment.Newline的生效方式

你之前试的Environment.Newline在HTML中默认会被忽略,因为HTML本身不识别纯换行符。如果想用换行符实现换行,需要给表格单元格添加CSS样式white-space: pre-wrap,强制浏览器保留换行:

<td style="white-space: pre-wrap;">@Model.YourStringWithNewlines</td>

这种方式适合你用\n或Environment.Newline分割编号的场景,不需要插入<br>标签。

另外提一句,你之前处理字符串的格式有点小问题,建议调整成每5个编号结束后加<br>(比如S020050A,S020050B,S020050C,S020050D,S020050E<br>S020050F,...),这样显示出来的排版会更整齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:45:23