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