zoukankan      html  css  js  c++  java
  • 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))  
    *-------------------------------------------------------------------------------------------------------------------------------------------* 每一段代码是一级小阶梯,我每爬上一级,就更脱离畜生而上升到人类,更接近美好生活!
  • 相关阅读:
    设计模式之原型模式
    Mac OSx下的APK反编译
    Android中ListView封装收缩与展开
    带密码登录的密码保险箱应用源码
    HTML 5缓存机制:Cache Manifest配置实例
    PHP开发大型项目的一点经验
    Windows Phone 编程: 摇一摇 效果
    swift皮筋弹动发射飞机
    Win8.1应用开发之适配器模式(C#实现)
    java实现身份证校验
  • 原文地址:https://www.cnblogs.com/Murray/p/2942826.html
Copyright © 2011-2022 走看看