控制器中代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication1.Models;
using System.Text;
namespace MvcApplication1.Controllers
{
public class talkController : Controller
{
//
// GET: /talk/
TalkDataContext dbTalk = new TalkDataContext();
public static int pageIndex = 1,pageCount;
public ActionResult Index(string msg)
{
if (pageIndex < 1)
{ pageIndex = 1; }
int pageSize = 3;
List<talk> talkList = dbTalk.talk.ToList();
int totalCount = talkList.Count;
bool hasRemainder;
int endNum=pageIndex * pageSize;
// pageCount = (totalCount % pageSize == 0 )?( totalCount / pageSize ): (totalCount / pageSize + 1);
if (totalCount % pageSize == 0)
{ pageCount = totalCount / pageSize; hasRemainder = false; }
else
{ pageCount = totalCount / pageSize + 1; hasRemainder = true; }
List<talk> newList = new List<talk>();
if (hasRemainder)
{
if (pageIndex == pageCount)
{
endNum = totalCount;
}
}
for (int i = (pageIndex - 1) * pageSize; i < endNum; i++)
{
newList.Add(talkList[i]);
}
ViewData["pageIndex"] = pageIndex;
ViewData["pageCount"] = pageCount;
ViewData["pageSize"] = pageSize;
ViewData["totalCount"] = totalCount;
ViewData["error"] = msg;
return View(newList);//返回分页器实例到视图
}
//上一页
public ActionResult prevPage()
{
string errorMsg = "";
if (pageIndex > 1)
{
pageIndex -= 1;
}
else
{
errorMsg = "已经是第一页了!";
// Response.Write("<script>alert('已经是第1页了!')</script>");
}
return RedirectToAction("Index", "talk", new { msg = errorMsg });
}
//下一页
public ActionResult nextPage()
{
if (pageIndex < pageCount)
{
pageIndex += 1;
}
else
{
ViewData["error"] = "已经是第一页了";
// Response.Write("<script>alert('已经是最后1页了!')</script>");
}
return RedirectToAction("Index");
}
//首页
public ActionResult firstPage()
{
pageIndex = 1;
return RedirectToAction("Index");
}
//尾页
public ActionResult lastPage()
{
pageIndex = pageCount;
return RedirectToAction("Index");
}
//跳到的页数
public ActionResult search()
{
string keyWord = Request.Form["keyWord"];
var talk = dbTalk.talk.Where(m => m.name.IndexOf(keyWord)>=0);//dbTalk.talk.Where(m => m.name.Equals(keyWord) == true);//
if (talk == null)
{ ViewData["error"] = "未找到相关信息!"; }
else
{ ViewData["error"] = "Yes!";}
ViewData.Model = talk;
return View();
}
public ActionResult gotoPage(FormCollection formCollection)
{
string pageNum = formCollection["goto"];
if (!int.TryParse(pageNum, out pageIndex))
{
pageIndex = 1;
}
else
{
if (pageIndex > pageCount || pageIndex < 1)
{ pageIndex = 1; }
}
return RedirectToAction("Index");
}
public void Test()
{
Response.Write("<script>alert('已经是最后1页了!');location='Index'</script>");
}
// GET: /talk/Details/5
public ActionResult Details(int id)
{
var data = dbTalk.talk.First(m=>m.id==id);
return View(data);
}
//
// GET: /talk/Create
public ActionResult Create()
{
return View();
}
//
// POST: /talk/Create
[HttpPost]
public ActionResult Create(talk m)
{
try
{
// TODO: Add insert logic here
talk t = new talk();
UpdateModel(t,Request.Form.AllKeys);
dbTalk.talk.InsertOnSubmit(t);
dbTalk.SubmitChanges();
//if (string.IsNullOrEmpty(m.name))
//{
// ModelState.AddModelError("error", "用户名不能为空!");
// return View();
//}
//talk t = new talk();
//t.name = m.name;
//t.text = m.text;
//t.time = m.time;
//dbTalk.talk.InsertOnSubmit(t);
//dbTalk.SubmitChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
//
// GET: /talk/Delete/5
public ActionResult Delete(int id)
{
talk t = dbTalk.talk.First(m => m.id == id);
//var t=from item in dbTalk.talk where item.id==id select item;
//talk tt=t.First();
return View(t);
}
//
// POST: /talk/Delete/5
[HttpPost]
public ActionResult Delete(int id, FormCollection collection)
{
try
{
// TODO: Add delete logic here
talk t = dbTalk.talk.First(m => m.id == id);
dbTalk.talk.DeleteOnSubmit(t);
dbTalk.SubmitChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
//
// GET: /talk/Edit/5
public ActionResult Edit(int id)
{
talk t = dbTalk.talk.First(m => m.id == id);
return View(t);
}
//
// POST: /talk/Edit/5
[HttpPost]
public ActionResult Edit(int id, FormCollection collection)
{
try
{
// TODO: Add update logic here
talk t= dbTalk.talk.First(m => m.id == id);
UpdateModel(t, collection.AllKeys);
dbTalk.SubmitChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
}