惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
美团技术团队
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
S
SegmentFault 最新的问题
博客园_首页
雷峰网
雷峰网
V
V2EX
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)
量子位
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
V
Visual Studio Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Jina AI
Jina AI
月光博客
月光博客
L
LangChain Blog

博客园 - 王继坤

DataTable 递归 简单的程序,来实现无限级列表 结合 jquery.table.js 实现 asp.net mvc 2 简简单单做开发 使用DataContext扩展方法Find<TEntity>(TEntity obj) 遇到的问题 asp.net mvc 2 简简单单做开发 实现基本数据操作操作RepositoryController<T> asp.net mvc 2 简简单单做开发 自定义DropdownList控件 asp.net mvc 2 简简单单做开发 通用增删改基本操作通用页面 asp.net mvc 2 DisplayTemplates 的使用 FcDigg 源码 asp.net 3.5 linq to sql 扩展方法 linq to access 简单实现 实例demo linq to access 简单实现 asp.net mvc 随想 asp.net mvc ajax实现1 asp.net ajax fccms 小型简单个人blog源码 FCKEDITOR中文使用说明 js调用 dotfuscator.exe 采用线程生成静态页面 新的开始--- gridview 实现多字段综合查询
asp.net mvc 2 简简单单做开发 自定义Controller基类 - 王继坤
王继坤 · 2010-07-03 · via 博客园 - 王继坤

  以前使用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;
            var article 
= db.Find<Article>(art);
            var list 
= db.Article.Where(d =>d.title.Contains("22"));
            RecordCount 
= article.Count();
            article 
= article.Skip((CurPage - 1* PageSize).Take(PageSize);
            GetPager();
            
return View("index", article);
        }
//public ActionResult Index()
        
//{
        
//    ViewData["searchModel"] = new Article();
        
//    var article = from d in db.Article
        
//                  select d;
        
//    RecordCount = article.Count();
       
        
//    article = article.Skip((CurPage-1)*PageSize).Take(PageSize);
        
//    GetPager();
        
//    return View("index",article);//}
        public ActionResult Add()
        {
            Article art 
= new Article();
            art.CreateTime 
= DateTime.Now;
            
return View(art);
        }
        [HttpPost]
        [ValidateInput(
false)]
        
public ActionResult Add(Article art)
        {
            
try
            {
                
if (this.ModelState.IsValid)
                {
                    db.Article.InsertOnSubmit(art);
                    db.SubmitChanges();
                    
return RedirectToAction("index");
                }
                
else
                {
                    
return View(art);
                }
            }
            
catch(Exception e)
            {
                
return Content(e.Message);
            }
           
        }
        
public ActionResult Edit(int id)
        {
            
return View(db.Article.FirstOrDefault(d=>d.Id==id));
        }
        [HttpPost]
        [ValidateInput(
false)]
        
public ActionResult Edit(int id,Article art1)
        {
            
try
            {
                Article art
=db.Article.FirstOrDefault(d=>d.Id==id);
                UpdateModel(art);
                db.SubmitChanges();
                
return this.RedirectToAction("index");
            }
            
catch
            {
                
return View(art1);
            }
        }
        
public ActionResult Delete(int id)
        {
           db.Article.DeleteOnSubmit(db.Article.FirstOrDefault(d 
=> d.Id == id));
           db.SubmitChanges();
         
return RedirectToAction("index");
        }

    }