asp.net mvc使用的心得和问题的解决方法(陆续更新ing)
生活随笔
收集整理的這篇文章主要介紹了
asp.net mvc使用的心得和问题的解决方法(陆续更新ing)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玻尿酸面膜多少钱啊?
- 下一篇: 多少钱算中产啊?