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


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

    在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))  
    *-------------------------------------------------------------------------------------------------------------------------------------------* 每一段代码是一级小阶梯,我每爬上一级,就更脱离畜生而上升到人类,更接近美好生活!
  • 相关阅读:
    强连通分量填坑记
    Car的旅行路线
    油滴扩散
    【转】孔乙已
    [CQOI2007]余数求和
    树形dp入门两题
    一本通 3.1 例 1」黑暗城堡
    一点点有的没的和一年总结
    leetcode答案 有效的括号(python)
    leetcode数据库题目及答案汇总
  • 原文地址:https://www.cnblogs.com/Murray/p/2942826.html
Copyright © 2020-2023  润新知