1:首先是Model层(Model不仅仅是实体层,还有普通的三层BLL,DAL代码都写在这里的! public class BLLStuedent{}):
using System.ComponentModel.DataAnnotations; //这个是验证的空间类;四种不同的;
namespace MvcLogin.Models
{
public class Student
{
[Required(ErrorMessage = "ID不能为空")]
public int Id { get; set; }
[Required(ErrorMessage = "姓名不能为空")]
public string Name { get; set; }
[RegularExpression("^[\u7537\u5973]+$", ErrorMessage = "性别只能输入“男”或者“女”")]
public string Sex { get; set; }
[Range(1, 120, ErrorMessage = "年龄必须在1-120之间")]
public int Age { get; set; }
}
}
2:控制器的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcLogin.Models;
namespace MvcLogin.Controllers
{
public class StudentController : Controller
{
static List<Student> students = new List<Student>();
//
// GET: /Student/
public ActionResult Index()
{
return View(students);
}
//
// GET: /Student/Details/5
public ActionResult Details(Student s)
{
return View(s);
}
//
// GET: /Student/Create
public ActionResult Create()
{
return View();
}
//
// POST: /Student/Create
[HttpPost]
public ActionResult Create(Student s)
{
try
{
// TODO: Add insert logic here
if (!ModelState.IsValid)
{
return View("Create", s);
}
students.Add(s);
return RedirectToAction("Index");
}
catch
{
return View();
}
}
//
// GET: /Student/Edit/5
public ActionResult Edit(int id)
{
Student s = new Student();
foreach (Student stu in students)
{
if (stu.Id == id)
{
s.Id = stu.Id;
s.Name = stu.Name;
s.Sex = stu.Sex;
s.Age = stu.Age;
}
}
return View(s);
}
//
// POST: /Student/Edit/5
[HttpPost]
public ActionResult Edit(Student s)
{
try
{
// TODO: Add update logic here
if (!ModelState.IsValid)
{
return View("Edit", s);
}
foreach (Student stu in students)
{
if (stu.Id == s.Id)
{
stu.Id = s.Id;
stu.Name = s.Name;
stu.Sex = s.Sex;
stu.Age = s.Age;
}
}
return RedirectToAction("Index");
}
catch
{
return View();
}
}
//
// GET: /Student/Delete/5
public ActionResult Delete(int id)
{
Student s = new Student();
foreach(Student stu in students)
{
if (stu.Id == id)
{
s.Id = stu.Id;
s.Name = stu.Name;
s.Sex = stu.Sex;
s.Age = stu.Age;
}
}
return View(s);
}
//
// POST: /Student/Delete/5
[HttpPost]
public ActionResult Delete(Student s)
{
try
{
// TODO: Add delete logic here
foreach (Student stu in students)
{
if (stu.Id == s.Id)
{
students.Remove(stu);
break;
}
}
return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
}
3:视图的代码:
列表页的代码:
<table>
<tr>
<th></th>
<th>
Id
</th>
<th>
Name
</th>
<th>
Sex
</th>
<th>
Age
</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td>
<%: Html.ActionLink("Edit", "Edit", new { id=item.Id }) %> |
<%: Html.ActionLink("Details", "Details", item)%> | //这边要特别注意的
<%: Html.ActionLink("Delete", "Delete", new { id=item.Id })%>
</td>
<td>
<%: item.Id %>
</td>
<td>
<%: item.Name %>
</td>
<td>
<%: item.Sex %>
</td>
<td>
<%: item.Age %>
</td>
</tr>
<% } %>
</table>
<p>
<%: Html.ActionLink("Create New", "Create") %>
</p>
<br />
增加的代码:
<% using (Html.BeginForm()) {%>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.Id) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Id) %>
<%: Html.ValidationMessageFor(model => model.Id) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Name) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Name) %>
<%: Html.ValidationMessageFor(model => model.Name) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Sex) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Sex) %>
<%: Html.ValidationMessageFor(model => model.Sex) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Age) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Age) %>
<%: Html.ValidationMessageFor(model => model.Age) %>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
<div>
<%: Html.ActionLink("Back to List", "Index") %>
</div>
编辑的代码:
<% using (Html.BeginForm()) {%>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.Name) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Name) %>
<%: Html.ValidationMessageFor(model => model.Name) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Sex) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Sex) %>
<%: Html.ValidationMessageFor(model => model.Sex) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Age) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Age) %>
<%: Html.ValidationMessageFor(model => model.Age) %>
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
<% } %>
<div>
<%: Html.ActionLink("Back to List", "Index") %>
</div>