初试 MVC+Boostrap

MVC模式下Models文件下Student 学生表的相关类

MVC模式控制器下的StudentController 中的代码

 

// GET: Student  
public ViewResult Index(string sortOrder, string currentFilter, string searchString, int? page)

{
  ViewBag.CurrentSort = sortOrder;
  ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
  ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

  if (searchString != null)
  {
    page = 1;
  }
  else
  {
    searchString = currentFilter;
     }

       ViewBag.CurrentFilter = searchString;

  var students = from s in db.Students
  select s;
  if (!String.IsNullOrEmpty(searchString))
  {
  students = students.Where(s => s.LastName.Contains(searchString)
  || s.FirstMidName.Contains(searchString));
  }
  switch (sortOrder)
  {
    case "name_desc":
    students = students.OrderByDescending(s => s.LastName);
    break;
    case "Date":
    students = students.OrderBy(s => s.EnrollmentDate);
    break;
    case "date_desc":
    students = students.OrderByDescending(s => s.EnrollmentDate);
    break;
    default: // Name ascending
    students = students.OrderBy(s => s.LastName);
    break;
  }

  int pageSize = 3;
  int pageNumber = (page ?? 1);
  return View(students.ToPagedList(pageNumber, pageSize));
}


// GET: Student/Details/5
public ActionResult Details(int? id)
{
  if (id == null)
  {
    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  }
  Student student = db.Students.Find(id);
  if (student == null)
  {
  return HttpNotFound();
  }
  return View(student);
}

 

// GET: Student/Create
public ActionResult Create()
{
  return View();
}

// POST: Student/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "LastName, FirstMidName, EnrollmentDate")]Student student)
{
  try
  {
    if (ModelState.IsValid)
    {
    db.Students.Add(student);
    db.SaveChanges();
    return RedirectToAction("Index");
    }
  }
  catch (RetryLimitExceededException /* dex */)
  {
  //Log the error (uncomment dex variable name and add a line here to write a log.
  ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
  }
  return View(student);
}

 

// GET: Student/Edit/5
public ActionResult Edit(int? id)
{
  if (id == null)
  {
    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  }
  Student student = db.Students.Find(id);
  if (student == null)
  {
    return HttpNotFound();
  }
  return View(student);
}

 

// POST: Student/Edit/5
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost, ActionName("Edit")]
[ValidateAntiForgeryToken]
public ActionResult EditPost(int? id)
{
  if (id == null)
  {
    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  }
  var studentToUpdate = db.Students.Find(id);
  if (TryUpdateModel(studentToUpdate, "",new string[] { "LastName", "FirstMidName", "EnrollmentDate" }))
  {
  try
  {
    db.Entry(studentToUpdate).State = EntityState.Modified;
    db.SaveChanges();

    return RedirectToAction("Index");
  }
  catch (RetryLimitExceededException /* dex */)
    {
      //Log the error (uncomment dex variable name and add a line here to write a log.
      ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
    }
  }
  return View(studentToUpdate);
}

 

// GET: Student/Delete/5
public ActionResult Delete(int? id, bool? saveChangesError = false)
{
  if (id == null)
  {
  return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  }
  if (saveChangesError.GetValueOrDefault())
  {
    ViewBag.ErrorMessage = "Delete failed. Try again, and if the problem persists see your system administrator.";
  }
  Student student = db.Students.Find(id);
  if (student == null)
  {
    return HttpNotFound();
  }
  return View(student);
}

 

// POST: Student/Delete/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Delete(int id)
{
  try
  {
    Student student = db.Students.Find(id);
    db.Students.Remove(student);
    db.SaveChanges();
  }
  catch (RetryLimitExceededException/* dex */)
  {
    //Log the error (uncomment dex variable name and add a line here to write a log.
    return RedirectToAction("Delete", new { id = id, saveChangesError = true });
  }
  return RedirectToAction("Index");
}


protected override void Dispose(bool disposing)
{
  if (disposing)
  {
  db.Dispose();
  }
  base.Dispose(disposing);
}

MVC模式下的Views视图代码

Index.cshtml 

Add.cshtml

Delect.cshtml

 

Edit.cshtml

其上代码实现如下图,功能全部实现。

 

posted on 2017-09-26 21:03  弘道法天  阅读(182)  评论(0编辑  收藏  举报

导航