91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET MVC5 PagedList分頁示例

發布時間:2020-06-26 10:27:08 來源:網絡 閱讀:1264 作者:guwei4037 欄目:編程語言

ASP.NET MVC是目前ASP.NET開發當中輕量級的Web開發解決方案,在ASP.NET MVC概述這篇譯文當中,已經詳細的介紹了ASP.NET MVC與Web Forms的區別以及各自的適用場景。由于ASP.NET MVC尤其適合網站的開發(Web Forms更適合業務系統的開發),目前成為很多網站開發者的首先框架。

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

首先利用VS2013的向導,創建一個ASP.NET MVC5的應用程序。

這個應用程序是可以直接運行的,提供了一些默認的功能(注冊、登錄)以及各自的實現示例代碼,基本上開發者參考著這些代碼就能簡單開發了。這里順便說一句,VS2013非常人性化,為開發者考慮了很多。

一、修改數據庫配置

由于這是默認創建的ASP.NET MVC應用程序,便于我們開發,我們最好修改一下數據庫配置。打開項目根目錄下的Web.config文件(注意,不是~/Views/下的Web.config)。

將DefaultConnection配置為:

<connectionStrings>
    <add name="DefaultConnection" connectionString="uid=sa;pwd=123456;Data Source=192.168.0.4;
         database=|DataDirectory|\StudentDB.mdf;Initial Catalog=StudentDB;Integrated Security=True"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

由于我們要開發一個分頁Demo,順便在appSettings配置節點下,添加:

 <!-- 分頁條件:每頁顯示的記錄數-->
 <add key="pageSize" value="8"/>

二、創建Model

一般我們開發MVC應用,都是從Model開始。我們在項目的Models文件夾下面新建一個學生模型類。

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

三、創建數據操作類

我們先在項目的根目錄下,新建一個DAL目錄。然后在DAL目錄下,新建一個StudentContext類,并讓它繼承自DbContext。我們這個例子使用EF來實現數據庫的操作。

由于創建的MVC5應用,已經默認引入了EF6.0,可以不用通過管理NuGet程序包來在線安裝EF。

StudentContext代碼如下:

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

        public DbSet<Student> Students { get; set; }

    }
}

我們還需要使用到PagedList來進行分頁,因此需要在線安裝。我們可以通過程序包管理器控制臺輸入命令的方式進行安裝。

ASP.NET MVC5 PagedList分頁示例

這樣我們所需要的dll就自動添加到了項目當中。

四、創建Controller

MVC開發中有個規則叫做:約定大于配置。即:在創建Controller的時候,類名統一以Controller結尾,所以我們創建一個StudentController的控制器。

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

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

            //第幾頁
            int pageNumber = page ?? 1;

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

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

            //通過ToPagedList擴展方法進行分頁
            IPagedList<Student> pagedList = students.ToPagedList(pageNumber, pageSize);

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

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

using PagedList;

五、創建View

我們在StudentController控制器中的Index方法旁,鼠標右鍵-添加視圖,選擇相應的選項(此前先編譯一下項目,否則可能無法正常添加視圖)。

ASP.NET MVC5 PagedList分頁示例ASP.NET MVC5 PagedList分頁示例

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

@model PagedList.IPagedList<MVC5PageDemo.Models.Student>
@using PagedList.Mvc;
<link href="~/Content/PagedList.css" rel="stylesheet" />
<table class="table">
    <tr>
        <th>
            姓名
        </th>
        <th>
            年齡
        </th>
        <th>
            性別
        </th>
        <th>
            分數
        </th>
    </tr>

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

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

六、準備測試數據

在項目的根目錄下新建Initializer目錄,然后在里面新建一個StudentInitializer類,并繼承自System.Data.Entity.DropCreateDatabaseAlways<StudentContext>。

namespace MVC5PageDemo.Initializer
{
    public class StudentInitializer : System.Data.Entity.DropCreateDatabaseAlways<StudentContext>
    {
        protected override void Seed(StudentContext context)
        {
            List<Student> students = new List<Student>();
            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節點下添加如下配置:

 <contexts>
    <context type="MVC5PageDemo.DAL.StudentContext,MVC5PageDemo">
       <databaseInitializer type="MVC5PageDemo.Initializer.StudentInitializer,MVC5PageDemo"/>
    </context>
 </contexts>

MVC5PageDemo.DAL.StudentContext是命名空間名+類名,逗號后面的MVC5PageDemo是StudentContext類所在的dll文件的名稱。context節點下的databaseInitializer的配置同理。


如上就完成了基于ASP.NET MVC5分頁表格的開發。

最終的效果圖:

ASP.NET MVC5 PagedList分頁示例

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永城市| 青冈县| 兴业县| 苗栗县| 多伦县| 商都县| 梁河县| 基隆市| 新源县| 云阳县| 沂源县| 阜康市| 宜章县| 昌黎县| 明溪县| 丹巴县| 长治市| 桂阳县| 岳阳县| 且末县| 北京市| 积石山| 吉林省| 都昌县| 常德市| 五华县| 红安县| 连城县| 抚顺市| 苗栗县| 揭阳市| 达州市| 霞浦县| 朝阳县| 恩平市| 榆树市| 马龙县| 崇明县| 九寨沟县| 泰兴市| 沅陵县|