MVC-分页

本文介绍了一个使用ASP.NET MVC实现的用户管理系统,包括用户信息的展示、注册及分页功能。系统通过数据库上下文操作用户数据,并利用自定义的分页助手类实现动态分页效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@using MvcTest190212.Models
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        <table>
            <tr>
                <th>编号</th>
                <th>用户名</th>
                <th>密码</th>
                <th>邮箱</th>
                <th>注册日期</th>
            </tr>
            @foreach (UserInfo userInfo in ViewData["userInfoList"] as IEnumerable<UserInfo>)
            {
            <tr>
                <td>@userInfo.ID</td>
                <td>@userInfo.UserName</td>
                <td>@userInfo.UserPass</td>
                <td>@userInfo.Email</td>
                <td>@userInfo.RegTime.ToShortDateString()</td>
            </tr>
            }
        </table>
        <hr />
        @Html.Raw(PageBarHelper.GetPagaBar((int)ViewData["pageIndex"], (int)ViewData["pageCount"]));
    </div>
</body>
</html>

 

/********************************************************************************************/

using MvcTest190212.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcTest190212.Controllers
{
    public class UserInfoController : Controller
    {

        UserInfoDbContext db = new UserInfoDbContext();
        // GET: UserInfo
        public ActionResult Index()
        {
            int pageIndex;
            if (!int.TryParse(Request["pageIndex"],out pageIndex))
            {
                pageIndex = 1;
            }
            int recordCount = db.UserInfo.Where<UserInfo>(u => true).Count();
            int pageSize = 3;
            int pageCount = Convert.ToInt32(Math.Ceiling((double)recordCount/pageSize));

            pageIndex = pageIndex < 1 ? 1 : pageIndex;
            pageIndex = pageIndex > pageCount ? pageCount : pageIndex;

            var userInfoList = db.UserInfo.Where<UserInfo>(u => true).OrderBy<UserInfo, int>(u => u.ID)
                .Skip<UserInfo>((pageIndex - 1) * pageSize).Take<UserInfo>(pageSize);

            ViewData["pageIndex"] = pageIndex;
            ViewData["pageCount"] = pageCount;
            ViewData["userInfoList"] = userInfoList;
            return View();
        }

        public ActionResult Register()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Register(UserInfo userInfo)
        {

            userInfo.RegTime = DateTime.Now;
            db.UserInfo.Add(userInfo);
            if (db.SaveChanges() > 0)
            {
                return Content("ok");
            }
            else
            {
                return Content("Fail");
            }
        }
    }
}

/***********************************************************************/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MvcTest190212.Models
{
   public class PageBarHelper
    {
       public static string GetPagaBar(int pageIndex, int pageCount)
       {
           if (pageCount == 1)
           {
               return string.Empty;
           }
           int start = pageIndex - 5;//计算起始位置.要求页面上显示10个数字页码.
           if (start < 1)
           {
               start = 1;
           }
           int end = start + 9;//计算终止位置.
           if (end > pageCount)
           {
               end = pageCount;
               //重新计算一下Start值.
               start = end - 9 < 1 ? 1 : end - 9;
           }
           StringBuilder sb = new StringBuilder();
           if (pageIndex > 1)
           {
               sb.AppendFormat("<a href='?pageIndex={0}' class='myPageBar'>上一页</a>", pageIndex - 1);
           }
           for (int i = start; i <= end; i++)
           {
               if (i == pageIndex)
               {
                   sb.Append(i);
               }
               else
               {
                   sb.AppendFormat("<a href='?pageIndex={0}' class='myPageBar'>{0}</a>",i);
               }
           }
           if (pageIndex < pageCount)
           {
               sb.AppendFormat("<a href='?pageIndex={0}' class='myPageBar'>下一页</a>", pageIndex + 1);
           }

           return sb.ToString();
       }
    }
}
 

/*****************************************************************/

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace MvcTest190212.Models
{
    public class UserInfo
    {
        [Key]
        [Required]
        public int ID { get; set; }

        [Required]
        [StringLength(32)]
        public string UserName { get; set; }

        [Required]
        [StringLength(32)]
        public string UserPass { get; set; }

        [Required]
        public DateTime RegTime { get; set; }

        [Required]
        [StringLength(32)]
        public string Email { get; set; }

    }
}
/*****************************************************************/

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Linq;
using System.Web;

namespace MvcTest190212.Models
{
    public class UserInfoDbContext : DbContext
    {
        public UserInfoDbContext() : base("name=connStr")
        {

        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }

        public DbSet<UserInfo> UserInfo { get; set; }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值