MVC3/4 自定义HtmlHelper截断文本内容

本文介绍如何在C#中创建一个截断新闻标题的类,以避免新闻标题过长导致显示不全的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我们的项目中经常会因为一个新闻的标题过长而不想全部显示。下面提供一个截断文本的类。

 

在MVC目录下新建一个名为 Extersions  的文件夹,在该文件夹中新建一个截断文本类,取名为:CutOfTextExtersions

 

该类代码如下:

 

 using System;

 

 
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace System.Web.Mvc //修改为所属System.Web.Mvc命名空间 方便直接使用
{
    /// <summary>
    
/// 截取字符串类
    
/// </summary>
    public static class CutOfTextExtersions
    {
        /// <summary>
        
/// 截取字符串方法
        
/// </summary>
        
/// <param name="helper"></param>
        
/// <param name="str">字符串</param>
        
/// <param name="len">长度</param>
        
/// <param name="flag">是否显示。。。</param>
        
/// <returns></returns>
        public static string GotTopic(this HtmlHelper helper, string str, int len, bool flag)
        {
            if (str != null && str != "")
            {
                string clearstr = str.RemoveHTML();
                int count = 0;
                string strTemp = "";
                for (int i = 0; i < clearstr.Length; i++)
                {
                    if (Math.Abs(((int)(clearstr.Substring(i, 1).ToCharArray())[0])) > 255)
                        count += 2;
                    else
                        count += 1;
                    if (count <= len)
                        strTemp += clearstr.Substring(i, 1);
                    else
                    {
                        strTemp = strTemp + (flag == true ? "" : "");
                        return str.Replace(clearstr, strTemp);
                    }
                }
                return str.Replace(clearstr, strTemp).Replace(" """).Trim();
            }
            else
                return "";
        }

        public static string RemoveHTML(this string str)
        {
            try
            {
                if (str != "")
                {
                    str = System.Text.RegularExpressions.Regex.Replace(str, "<[^>]*>""");
                    str = str.Replace("&nbsp;"" ");
                    return str;
                }
                else
                    return "";
            }
            catch
            {
                return "";
            }
        }
    }
}
复制代码

 

在View中使用该类:

 

 

 

 @Html.ActionLink(@Html.GotTopic(@item.NewsTitle, 40true)) 

@Html.ActionLink(@Html.GotTopic(@item.NewsTitle, 40false)) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值