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

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
小众软件
小众软件
P
Proofpoint News Feed
IT之家
IT之家
Apple Machine Learning Research
Apple Machine Learning Research
T
The Exploit Database - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Threat Research - Cisco Blogs
K
Kaspersky official blog
V
V2EX
博客园 - Franky
Cisco Talos Blog
Cisco Talos Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Scott Helme
Scott Helme
量子位
SecWiki News
SecWiki News
博客园 - 叶小钗
S
SegmentFault 最新的问题
L
LINUX DO - 最新话题
Attack and Defense Labs
Attack and Defense Labs
T
Tailwind CSS Blog
Google DeepMind News
Google DeepMind News
T
Tor Project blog
N
News and Events Feed by Topic
The Cloudflare Blog
Help Net Security
Help Net Security
Forbes - Security
Forbes - Security
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
P
Privacy & Cybersecurity Law Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
A
Arctic Wolf
L
LangChain Blog
Latest news
Latest news
S
Schneier on Security
C
CERT Recently Published Vulnerability Notes
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园_首页
T
The Blog of Author Tim Ferriss
Schneier on Security
Schneier on Security
S
Security @ Cisco Blogs
Hugging Face - Blog
Hugging Face - Blog
MyScale Blog
MyScale Blog
Blog — PlanetScale
Blog — PlanetScale
O
OpenAI News

博客园 - 王继坤

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");
        }

    }