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))  
    *-------------------------------------------------------------------------------------------------------------------------------------------* 每一段代码是一级小阶梯,我每爬上一级,就更脱离畜生而上升到人类,更接近美好生活!
  • 相关阅读:
    python访问mysql和redis
    南昌PHP程序员的工资水平据说可达到8000了
    Android开发总是难以入门
    AppCan可以视为Rexsee的存活版
    像我这样的人搞程序开发
    PHPWind 8.7中插件金币竞价插件的漏洞
    混合式APP开发中中间件方案Rexsee
    看到一份名单发现很多公司都和自己发生了或多或少的联系
    PhpWind 8.7中禁止后台管理员随意修改会员用户名功能
    个人前途
  • 原文地址:https://www.cnblogs.com/Murray/p/2942826.html
Copyright © 2011-2022 走看看