1、在mvc下webform的分页控件不能用,只好自己山寨一个轻便的。

  1    public class PageHelp
  2    {
  3        /**//// <summary>
  4        /// 总页数
  5        /// </summary>
  6        public int TotalPageNum { get; set; }
  7        /**//// <summary>
  8        /// 当前页
  9        /// </summary>
 10        public int CurrentPageNum { get; set; }
 11
 12        private int pageNumSize = 5;
 13        /**//// <summary>
 14        /// 页码链接允许的数量,默认为5个链接
 15        /// </summary>
 16        public int PageNumSize
 17        {
 18            get { return pageNumSize; }
 19            set { pageNumSize = value; }
 20        }
 21        /**//// <summary>
 22        /// 是否允许向上翻页
 23        /// </summary>
 24        public bool canUp
 25        {
 26            get
 27            {
 28                if (CurrentPageNum == 1)
 29                    return false;
 30                else
 31                    return true;
 32            }
 33        }
 34        /**//// <summary>
 35        /// 是否允许向下翻页
 36        /// </summary>
 37        public bool canDown
 38        {
 39            get
 40            {
 41                if (CurrentPageNum == TotalPageNum)
 42                    return false;
 43                else
 44                    return true;
 45            }
 46        }
 47        /**//// <summary>
 48        /// 页码数组
 49        /// </summary>
 50        public int[] PageNumArray
 51        {
 52            get
 53            {
 54                if (TotalPageNum <= pageNumSize)
 55                {
 56                    int[] pageArray = new int[TotalPageNum];
 57                    for (int i = 0; i < TotalPageNum; i++)
 58                        pageArray[i] = i + 1;
 59                    return pageArray;
 60                }
 61                else
 62                {
 63                    int[] pageArray = new int[pageNumSize];
 64                    if (CurrentPageNum == 1 || TotalPageNum <= pageNumSize)
 65                    {
 66                        for (int i = 0; i < pageNumSize; i++)
 67                            pageArray[i] = i + 1;
 68                    }
 69                    else if (CurrentPageNum == TotalPageNum)
 70                    {
 71                        for (int i = 0; i < pageNumSize; i++)
 72                            pageArray[i] = TotalPageNum - pageNumSize + i + 1;
 73                    }
 74                    else
 75                    {
 76                        int numHalf = pageNumSize / 2;
 77                        if (CurrentPageNum - numHalf <= 0)
 78                        {
 79                            for (int i = 0; i < pageNumSize; i++)
 80                                pageArray[i] = i + 1;
 81                        }
 82                        else if (CurrentPageNum + (pageNumSize - numHalf) >= TotalPageNum)
 83                        {
 84                            for (int i = 0; i < pageNumSize; i++)
 85                                pageArray[i] = TotalPageNum - (pageNumSize - i - 1);
 86                        }
 87                        else
 88                        {
 89                            int i;
 90                            for (i = 0; i < numHalf; i++)
 91                            {
 92                                pageArray[i] = CurrentPageNum - numHalf + i;
 93                            }
 94                            for (int z = 1; z <= pageNumSize - numHalf; z++)
 95                            {
 96                                pageArray[i + z - 1] = CurrentPageNum + z - 1;
 97                            }
 98                        }
 99                    }
100                    return pageArray;
101                }
102            }
103        }
104        public PageHelp(int totalPage, int currentPage, int pageNumSize)
105        {
106            TotalPageNum = totalPage;
107            CurrentPageNum = currentPage;
108            PageNumSize = pageNumSize;
109        }
110        public string PagePrint(string href)
111        {
112            string tableHtml = string.Empty;
113            string replace = "$page";
114            tableHtml += "<table cellpadding='0' cellspacing='0' class='" + "pagination " + "'><tr>";
115            tableHtml += "<td ><div class='pageinfo'> 共<span>" + TotalPageNum + "</span>" + "页<div></td>";
116            if (CurrentPageNum != 1)
117            {
118                tableHtml += "<td><a href='" + href.Replace("$page","1") + "'>第一页</a></td>";
119                tableHtml += "<td><a href='" + (href.Replace(replace,(CurrentPageNum - 1).ToString())) + "'>上一页</a></td>";
120            }
121            else
122            {
123                tableHtml += "<td><span class='cannot'>第一页</span></td>";
124                tableHtml += "<td><span class='cannot'>上一页</span></td>";
125            }
126            for (int i = 0; i < PageNumArray.Count(); i++)
127            {
128                if (PageNumArray[i] != CurrentPageNum)
129                {
130                    tableHtml += "<td>";
131                    tableHtml += "<a href='";
132                }
133                else
134                {
135                    tableHtml += "<td>";
136                    tableHtml += "<a class='current' href='";
137                }
138                tableHtml += href.Replace(replace,PageNumArray[i].ToString());
139                tableHtml += "'>";
140                tableHtml += PageNumArray[i];
141                tableHtml += "</a>";
142                tableHtml += "</td>";
143            }
144            if (canDown)
145            {
146                tableHtml += "<td><a href='" + (href.Replace(replace,(CurrentPageNum+1).ToString())) + "'>下一页</a></td>";
147                tableHtml += "<td><a href='" + href.Replace(replace,TotalPageNum.ToString())+ "'" + ">最后一页</a></td>";
148            }
149            else
150            {
151                tableHtml += "<td><span class='cannot'>下一页</span></td>";
152                tableHtml += "<td><span class='cannot'>最后一页</span></td>";
153            }
154            tableHtml += "</tr></table>";
155            return tableHtml;
156        }
157    }
分页样式
 1.pagination {}{
 2            font-size: 80%;
 3        }
 4        
 5.pagination a {}{
 6    text-decoration: none;
 7    border: solid 1px #AAE;
 8    color: #15B;
 9}
10
11.pagination a, .pagination span {}{
12    display: block;
13    float: left;
14    padding: 0.3em 0.5em;
15    margin-right: 5px;
16    margin-bottom: 5px;
17}
18
19.pagination .current {}{
20    background: #26B;
21    color: #fff;
22    border: solid 1px #AAE;
23}
24
25.pagination .current.prev, .pagination .current.next{}{
26    color:#999;
27    border-color:#999;
28    background:#fff;
29}
30.cannot
31{}{
32    background: #26B;
33    color: #fff;
34    border: solid 1px #AAE;
35    color:#999 !important;
36    border-color:#999;
37    background:#fff;
38}
39div .pageinfo{}{ width:50px !important;}

使用示例

使用示例
1 <%=new PageHelp(totalPage,pageIndex,5).PagePrint("/DemoTalk/List/$page")%>

效果:

2、[HandleError]失灵了,囧

这个问题很好解决。。。

<customErrors mode="On" />只要在web.config里加上这句就可以了,汗啊。。。

在Error页面的使用示例:

使用示例
1 Message:<%=((HandleErrorInfo)ViewData.Model).Exception.Message %>

3、不标明bind字段就stackoverflow的

asp.net mvc的ModelBinder很好很强大,可是如果你要构建的实体类的字段没有全部post过来,而且你也没用bind(...)显示标明要bind的属性的时候,呵呵,stackoverflow这个异常就会华丽的抛出。。。,为什么不能智能点,找不到属性你还找。。。,结果就溢出了,看来还有改进的余地。。。

转载于:https://www.cnblogs.com/brightwang/archive/2008/11/19/1336370.html

asp.net mvc使用的心得和问题的解决方法(陆续更新ing)相关推荐

  1. ASP.NET MVC 中宿主WCF Rest 服务的解决方法

    我这里就是通过routes.MapRoute(参数)中的参数进行处理的.MapRoute的重载如下: RouteTable.Routes.MapRoute( string name, string u ...

  2. ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解

    ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解 原文 ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解 在教程的这一部分,我们将研究一 ...

  3. Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法

    Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法 参考文章: (1)Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法 (2)https://www. ...

  4. ewebeditor编辑器ASP/ASPX/PHP/JSP版本漏洞利用总结及解决方法

    ewebeditor编辑器ASP/ASPX/PHP/JSP版本漏洞利用总结及解决方法 参考文章: (1)ewebeditor编辑器ASP/ASPX/PHP/JSP版本漏洞利用总结及解决方法 (2)ht ...

  5. IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法

    IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法 IIS上部署MVC网站,打开后500错误:处理程序"Extensionle ...

  6. 【转】Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法

    [转]Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法 参考文章: (1)[转]Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法 (2)https: ...

  7. 使用Asp.net MVC, Jquery, Jquery UI构建基于Ajax的RIA应用.(更新Demo下载)

    前天初学Asp.net MVC,发现有些东西用Web Form来做的确会比较方便. 但Asp.net MVC也有它的优点. 它如果跟Jquery和Jquery UI结合起来做基于Ajax的应用实在是太 ...

  8. 说说在MVC开发中,遇到的错误及解决方法(本文章是我在实际开发中总结出来的,希望对您有帮助)...

    前提:数据底层,使用的是MVC架构,对于数据表中的状态及相关字段,采用了枚举型进行对应 1 序列中不包含任何元素   解决:将Single()改为DefaultOrSingle() 2 序列包含一个以 ...

  9. IIS6.0打开ASP文件,出现500错误或404错误解决方法

    IIS6.0打开asp文件提示500错误解决方案和IIS6.0中访问asp文件提示404错误'无法找到该页'的方案 在IIS6.0中,默认情况下没有开启对asp的支持 解决方法:打开 [iis管理器] ...

最新文章

  1. 字节跳动java笔试题目_牛客网--字节跳动面试题--特征提取
  2. java 命名管道_利用Windows命名管道实现IPC的一种有效方法
  3. 聚类--K均值算法:自主实现与sklearn.cluster.KMeans调用
  4. oracle学习笔记一
  5. 计算机网络对科学发展有什么影响,计算机技术对社会发展的影响
  6. java方法、方法重载
  7. 框架源码专题:Spring的事件监听、发布机制 ApplicationListener
  8. python进程与线程_Python进程与线程知识
  9. php主键自增sql语句,sql 自动增长的主键
  10. python怎样装pandas_小白学python:坑一:如何安装pandas和numpy
  11. 命令行构建Unity项目
  12. spring-jpa中mappedby的作用
  13. html原生的日期选择器,原生JS实现日期选择
  14. 手机坏点如何测试软件,怎么检测手机屏幕坏点
  15. 云计算工程师必备技能
  16. 运动装备什么牌子好?运动装备品牌排行榜推荐
  17. SPSS数据统计分析前准备【002期】
  18. 微信小程序订单生成支付二维码接口 code
  19. 用AkShare获取实盘沪深可转债数据
  20. 数据库应用程序开发基础篇—— .NET中SQL Server数据库的操作C#篇之一

热门文章

  1. 小技巧教你解决此windows副本不是正版的问题
  2. 地雷会炸到自己吗_回顾自己曾经的往事 ——记双语学习有感
  3. AUTOSAR从入门到精通100讲(九)-汽车Tbox
  4. mysql全表重命名备份_MySQL数据库重命名的快速且安全方法(3种)
  5. github删除文件_github 仓库中删除历史大文件
  6. jQuery实现禁用和只读
  7. 对后台返回的数据进行评分排序、时间排序!
  8. java的六大_java程序员必备的六大工具!
  9. java跳转_java servlet 几种页面跳转的方法
  10. VUE v-bind绑定class和style