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

ASP.NET Core如何在指定位置截断文本?

在ASP.NET Core视图中实现特定位置文本截断换行

方法1:后端预处理(逻辑可控,推荐)

在ViewModel或控制器中对目标字符串按规则处理,再传递到视图渲染:

  • 按特定标记换行(比如---):
// 后端C#代码
review.ProcessedReview = review.review.Replace("---", "<br/>");

视图中直接输出处理后的内容(用Html.Raw避免HTML转义):

<div class="input-container">
    <p>@Html.Raw(review.ProcessedReview)</p>
</div>
  • 按固定长度截断换行:
// 后端C#代码
var chunkSize = 20;
review.ProcessedReview = string.Join("<br/>", 
    Enumerable.Range(0, (review.review.Length + chunkSize - 1) / chunkSize)
              .Select(i => review.review.Substring(i * chunkSize, Math.Min(chunkSize, review.review.Length - i * chunkSize))));

方法2:前端CSS自动换行(适合固定容器场景)

通过CSS控制文本在容器内的换行规则,无需修改字符串内容:

<div class="input-container">
    <p style="word-break: break-all; white-space: pre-wrap;">@review.review</p>
</div>
  • word-break: break-all:允许长单词内换行
  • white-space: pre-wrap:保留原文本换行符,同时自动适配容器宽度换行

方法3:前端JavaScript动态处理

页面加载后通过JS替换特定字符为换行标签:

<div class="input-container">
    <p id="review-text">@review.review</p>
</div>

<script>
    const reviewElement = document.getElementById('review-text');
    // 示例:将"||"替换为换行
    reviewElement.innerHTML = reviewElement.textContent.replace(/\|\|/g, '<br/>');
</script>

方法4:Razor视图内直接处理

在视图中嵌入C#代码完成字符串分割:

<div class="input-container">
    @{
        var rawText = review.review;
        var splitMark = "---"; // 自定义截断标记
        var parts = rawText.Split(new[] { splitMark }, StringSplitOptions.None);
        foreach (var part in parts)
        {
            <span>@part</span>
            if (!part.Equals(parts.Last()))
            {
                <br/>
            }
        }
    }
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:20:35