






















以前使用asp.net时总是自定义一个基类来继承Page类,来实现一些页面中常用的操作来减少代码。asp.net mvc 2 里没有分页功能,就在基类里实现分页的功能吧,在页面中定义分页常用的变量,如 RecordCount、PageSize、CurPage等。通过GetPager() 把分页字符串赋给ViewData["Page"],view页面中直接输出ViewData["page"]。
实例代码 BaseController.cs
1 public class BaseController : Controller
2 {
3 //linq数据操作类db
4 public DB db = new DB();
5 public int RecordCount = 0;
6 public int PageSize = 10;
7
8 public int CurPage
9 {
10 get
11 {
12 return DNTRequest.GetInt("page", 1);
13 }
14 }
15 public void GetPager()
16 {
17 int PageCount = (int)Math.Ceiling(RecordCount/ ((double)PageSize));
18 ViewData["Page"] = Utils.GetPageNumbers(CurPage, PageCount, GetUrl(), 5);
19 }
20 public string GetUrl()
21 {
22 string url = Request.Url.ToString();
23 url = url.Substring(url.LastIndexOf("/") + 1);
24
25 Regex reg = new Regex(@"&page=([0-9]+)", RegexOptions.IgnoreCase);
26 Match m = reg.Match(url);
27 if (m.Success)
28 {
29 url = url.Replace(m.Groups[0].Value, "");
30 }
31 reg = new Regex(@"\?page=([0-9]+)", RegexOptions.IgnoreCase);
32 m = reg.Match(url);
33 if (m.Success)
34 {
35 url = url.Replace(m.Groups[0].Value, "?1=1");
36 }
37 return url;
38 }
39 }
ArticleController.cs
代码
public class ArticleController : BaseController
{
protected override void OnResultExecuting(ResultExecutingContext filterContext)
{
var cate=db.Category.ToList();
cate.Insert(0,new Category() {Id=0, Name="未设置"});
ViewData["category"] = cate;
base.OnResultExecuting(filterContext);
}public ActionResult Index(Article art)
{
ViewData[
"searchModel"] = art;}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。