真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ASP.NETMVC5PagedList分頁(yè)示例-創(chuàng)新互聯(lián)

ASP.NET MVC是目前ASP.NET開(kāi)發(fā)當(dāng)中輕量級(jí)的Web開(kāi)發(fā)解決方案,在ASP.NET MVC概述這篇譯文當(dāng)中,已經(jīng)詳細(xì)的介紹了ASP.NET MVC與Web Forms的區(qū)別以及各自的適用場(chǎng)景。由于ASP.NET MVC尤其適合網(wǎng)站的開(kāi)發(fā)(Web Forms更適合業(yè)務(wù)系統(tǒng)的開(kāi)發(fā)),目前成為很多網(wǎng)站開(kāi)發(fā)者的首先框架。

創(chuàng)新互聯(lián)長(zhǎng)期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為青浦企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)、網(wǎng)站制作青浦網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

這里舉個(gè)典型的例子(表格的分頁(yè)),以此熟悉一下ASP.NET MVC的開(kāi)發(fā)。開(kāi)發(fā)環(huán)境:Windows 8.1企業(yè)版+VS2013旗艦版+SQL Server 2014。

首先利用VS2013的向?qū)?,?chuàng)建一個(gè)ASP.NET MVC5的應(yīng)用程序。

這個(gè)應(yīng)用程序是可以直接運(yùn)行的,提供了一些默認(rèn)的功能(注冊(cè)、登錄)以及各自的實(shí)現(xiàn)示例代碼,基本上開(kāi)發(fā)者參考著這些代碼就能簡(jiǎn)單開(kāi)發(fā)了。這里順便說(shuō)一句,VS2013非常人性化,為開(kāi)發(fā)者考慮了很多。

一、修改數(shù)據(jù)庫(kù)配置

由于這是默認(rèn)創(chuàng)建的ASP.NET MVC應(yīng)用程序,便于我們開(kāi)發(fā),我們最好修改一下數(shù)據(jù)庫(kù)配置。打開(kāi)項(xiàng)目根目錄下的Web.config文件(注意,不是~/Views/下的Web.config)。

將DefaultConnection配置為:


    
  

由于我們要開(kāi)發(fā)一個(gè)分頁(yè)Demo,順便在appSettings配置節(jié)點(diǎn)下,添加:

 
 

二、創(chuàng)建Model

一般我們開(kāi)發(fā)MVC應(yīng)用,都是從Model開(kāi)始。我們?cè)陧?xiàng)目的Models文件夾下面新建一個(gè)學(xué)生模型類。

namespace MVC5PageDemo.Models
{
    public enum Sex
    {
        Female, Male
    }

    public class Student
    {
        public int ID { get; set; }

        public string Name { get; set; }

        public int Age { get; set; }

        public Sex Sex { get; set; }

        public double Score { get; set; }
    }
}

三、創(chuàng)建數(shù)據(jù)操作類

我們先在項(xiàng)目的根目錄下,新建一個(gè)DAL目錄。然后在DAL目錄下,新建一個(gè)StudentContext類,并讓它繼承自DbContext。我們這個(gè)例子使用EF來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的操作。

由于創(chuàng)建的MVC5應(yīng)用,已經(jīng)默認(rèn)引入了EF6.0,可以不用通過(guò)管理NuGet程序包來(lái)在線安裝EF。

StudentContext代碼如下:

namespace MVC5PageDemo.DAL
{
    public class StudentContext : DbContext
    {
        public StudentContext() : base("DefaultConnection") { }

        public DbSet Students { get; set; }

    }
}

我們還需要使用到PagedList來(lái)進(jìn)行分頁(yè),因此需要在線安裝。我們可以通過(guò)程序包管理器控制臺(tái)輸入命令的方式進(jìn)行安裝。

ASP.NET MVC5 PagedList分頁(yè)示例

這樣我們所需要的dll就自動(dòng)添加到了項(xiàng)目當(dāng)中。

四、創(chuàng)建Controller

MVC開(kāi)發(fā)中有個(gè)規(guī)則叫做:約定大于配置。即:在創(chuàng)建Controller的時(shí)候,類名統(tǒng)一以Controller結(jié)尾,所以我們創(chuàng)建一個(gè)StudentController的控制器。

namespace MVC5PageDemo.Controllers
{
    public class StudentController : Controller
    {
        //數(shù)據(jù)庫(kù)上下文操作對(duì)象
        private StudentContext db = new StudentContext();

        public ViewResult Index(int? page)
        {
            //學(xué)生列表
            var students = from s in db.Students select s;

            //第幾頁(yè)
            int pageNumber = page ?? 1;

            //每頁(yè)顯示多少條
            int pageSize = int.Parse(ConfigurationManager.AppSettings["pageSize"]);

            //根據(jù)ID排序
            students = students.OrderBy(x => x.ID);

            //通過(guò)ToPagedList擴(kuò)展方法進(jìn)行分頁(yè)
            IPagedList pagedList = students.ToPagedList(pageNumber, pageSize);

            //將分頁(yè)處理后的列表傳給View
            return View(pagedList);
        }
    }
}

如上代碼需要引入PagedList命名空間。

using PagedList;

五、創(chuàng)建View

我們?cè)赟tudentController控制器中的Index方法旁,鼠標(biāo)右鍵-添加視圖,選擇相應(yīng)的選項(xiàng)(此前先編譯一下項(xiàng)目,否則可能無(wú)法正常添加視圖)。

ASP.NET MVC5 PagedList分頁(yè)示例ASP.NET MVC5 PagedList分頁(yè)示例

將新建的~/Student/Index視圖文件修改為:

@model PagedList.IPagedList
@using PagedList.Mvc;


    
        
            姓名
        
        
            年齡
        
        
            性別
        
        
            分?jǐn)?shù)
        
    

    @foreach (var item in Model)
    {
        
            
                @Html.DisplayFor(modelItem => item.Name)
            
            
                @Html.DisplayFor(modelItem => item.Age)
            
            
                @Html.DisplayFor(modelItem => item.Sex)
            
            
                @Html.DisplayFor(modelItem => item.Score)
            
        
    }


每頁(yè) @Model.PageSize 條記錄,共 @Model.PageCount 頁(yè),當(dāng)前第 @Model.PageNumber 頁(yè)
@Html.PagedListPager(Model, page => Url.Action("Index", new { page }))

六、準(zhǔn)備測(cè)試數(shù)據(jù)

在項(xiàng)目的根目錄下新建Initializer目錄,然后在里面新建一個(gè)StudentInitializer類,并繼承自System.Data.Entity.DropCreateDatabaseAlways。

namespace MVC5PageDemo.Initializer
{
    public class StudentInitializer : System.Data.Entity.DropCreateDatabaseAlways
    {
        protected override void Seed(StudentContext context)
        {
            List students = new List();
            for (int i = 1; i < 40; i++)
            {
                Student student = new Student();
                student.ID = i;
                student.Name = "張" + i;
                student.Age = 10 + i;
                student.Sex = i % 2 == 0 ? Sex.Female : Sex.Male;
                student.Score = 60 + i;

                students.Add(student);
            }

            context.Students.AddRange(students);
            context.SaveChanges();
        }
    }
}

在Web.config的entityFramework節(jié)點(diǎn)下添加如下配置:

 
    
       
    
 

MVC5PageDemo.DAL.StudentContext是命名空間名+類名,逗號(hào)后面的MVC5PageDemo是StudentContext類所在的dll文件的名稱。context節(jié)點(diǎn)下的databaseInitializer的配置同理。

如上就完成了基于ASP.NET MVC5分頁(yè)表格的開(kāi)發(fā)。

最終的效果圖:

ASP.NET MVC5 PagedList分頁(yè)示例

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


分享標(biāo)題:ASP.NETMVC5PagedList分頁(yè)示例-創(chuàng)新互聯(lián)
分享URL:http://weahome.cn/article/dccppd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部