关于C#传给视图的字符串带有Html转义字符的处理

 

复制代码
public class PageBarHelper//分页类
    {
        public static string GetPageBar(string requestHref,int totalCount,int pageIndex,int pageSize)
        {
            //初始化pageSize,如果为0,默认为5
            pageSize = pageSize == 0 ? 5 : pageSize;
            pageIndex = pageIndex == 0 ? 1 : pageIndex;

            //计算总页数
            int pageCount = Convert.ToInt32(Math.Ceiling((double)(totalCount / pageSize)));
            //构建输出字符串
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("<div id='pageBar'>");
            //判断pageCount是否足够分页,足够分页时
            if (pageCount > 1)
            {
                if (pageIndex!=1)  //如果当前页不是第一页,显示首页标识
                {
                    sb.AppendFormat("<a href='{0}?pageIndex=1&&pageSize={1}'>首  页", requestHref, pageSize);
                }
                sb.Append("  ");
                if (pageIndex>1)  //如果当前页大于1,显示上一页标识
                {
                    sb.AppendFormat("<a href='{0}?pageIndex={1}&&pageSize={2}'>上一页</a>"
                        , requestHref, pageIndex - 1, pageSize);
                }
                sb.Append("  ");
                if (pageIndex!=pageCount) //如果当前页不是最后一页,显示下一页标识
                {
                    sb.AppendFormat("<a href='{0}?pageIndex={1}&&pageSize={2}'>下一页</a>"
                        , requestHref, pageIndex + 1, pageSize);
                    sb.AppendFormat("<a href='{0}?pageIndex={1}&&pageSize={2}'>末  页</a>"
                        , requestHref, pageCount, pageSize);
                }    
                sb.Append("        ");

            }
            sb.AppendFormat("第{0}页/共{1}页", pageIndex, pageCount);           
            sb.AppendFormat("</div>");            
            return sb.ToString();
        }
    }
复制代码

//页面调用分页类的分页方法:要将传如的string类型转成HtmlString类型,采用@Html.Raw(string str)函数

@{
string href = "/UserInfo/Index/";
@Html.Raw(PageBarHelper.GetPageBar(href, (int)ViewData["recordcount"], (int)ViewData["pageIndex"], (int)ViewData["pageSize"]));
}

posted @   CelonY  阅读(3404)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示