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

推荐订阅源

量子位
Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
NISL@THU
NISL@THU
T
Threat Research - Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
Lohrmann on Cybersecurity
V
Visual Studio Blog
Cyberwarzone
Cyberwarzone
D
Docker
The Hacker News
The Hacker News
C
CERT Recently Published Vulnerability Notes
Vercel News
Vercel News
Project Zero
Project Zero
S
Schneier on Security
aimingoo的专栏
aimingoo的专栏
I
Intezer
腾讯CDC
M
MIT News - Artificial intelligence
Hugging Face - Blog
Hugging Face - Blog
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
AWS News Blog
AWS News Blog
GbyAI
GbyAI
MongoDB | Blog
MongoDB | Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Vulnerabilities – Threatpost
G
Google Developers Blog
N
Netflix TechBlog - Medium
The Cloudflare Blog
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
A
Arctic Wolf
S
Securelist
酷 壳 – CoolShell
酷 壳 – CoolShell
Cisco Talos Blog
Cisco Talos Blog
Recent Announcements
Recent Announcements
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LINUX DO - 热门话题
T
Threatpost
Latest news
Latest news
Blog — PlanetScale
Blog — PlanetScale
Security Latest
Security Latest
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
H
Help Net Security
The GitHub Blog
The GitHub Blog
T
Tor Project blog
P
Proofpoint News Feed

博客园 - 王继坤

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

    }