标签:
@*ViewBag传递的是动态对象*@ @foreach (string item in ViewBag.listData) { <li>@item</li> } ----------------------------------------- @*ViewData传递的是Object,所以要转换类型*@ @foreach (string item in (List<string>)ViewData["Countries"]) { <li>@item</li> }
public class EmployeeContext : DbContext { //定义对应到数据库表的对象集合 public DbSet<Employee> Employees { get; set; } } <add name="EmployeeContext" providerName="System.Data.SqlClient" connectionString="Data Source=.;Initial Catalog=MVCSample;User ID= ;Password= ; " />
//DBFirst从数据读取数据,程序运行的时候EmployeeContext初始化为Null Database.SetInitializer<MVCBlog.Models.EmployeeContext>(null);
@model IEnumerable<MVCBlog.Models.Employee> @using MVCBlog.Models @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>Index</h2> @*Controller 传递过来的是List对象,所以强类型定义为List<MVCBlog.Models.Employee>*@ <ul> @foreach (Employee employee in @Model) { <li> @Html.ActionLink(employee.Name, "Details", new { @id = @employee.EmployeeID }) </li> } </ul>
public IEnumerable<Employee> employees { get { string connectionString = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; List<Employee> employees = new List<Employee>(); using (SqlConnection con = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand("sp_GetAllEmployee", con); cmd.CommandType = CommandType.StoredProcedure; con.Open(); SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()) { Employee employee = new Employee(); employee.EmployeeID = Convert.ToInt32(sdr["EmployeeID"]); employee.Name = sdr["Name"].ToString(); employee.City = sdr["City"].ToString(); employee.Gender = Convert.ToChar(sdr["Gender"]); employees.Add(employee); } return employees; } } }
@Html.DropDownList("Gender", new List<SelectListItem> { new SelectListItem { Text="男",Value="M"}, new SelectListItem{ Text="女",Value="F"} }, "Select Gender", htmlAttributes: new { @class = "control-label col-md-2" })
CREATE PROCEDURE sp_AddEmployee @Name nvarchar(50)=null, @Gender char(1)=null, @City nvarchar(50)=null, @DateOfBirth DateTime=null AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. Insert Into Employee(Name,Gender,City,DateOfBirth) values(@Name,@Gender,@City,@DateOfBirth) END GO
[HttpPost] public ActionResult Create(FormCollection formCollection) { //foreach (string key in formCollection.AllKeys) //{ // Response.Write(key + " "); // Response.Write(formCollection[key] + "<br/>"); //} Employee employee = new Employee(); employee.Name = formCollection["Name"]; employee.Gender = Convert.ToChar(formCollection["Gender"]); employee.City = formCollection["City"]; employee.DateOfBirth = Convert.ToDateTime(formCollection["DateOfBirth"]); EmployeeService employeeService = new EmployeeService(); int numSucc = employeeService.AddEmployee(employee); if (numSucc > 0) { return RedirectToAction("Index"); } else { return View(); } }
[HttpPost] public ActionResult Create(string Name,char Gender,string City,string DateOfBirth) { Employee employee = new Employee(); employee.Name = Name; employee.Gender = Gender; employee.City = City; employee.DateOfBirth = Convert.ToDateTime(DateOfBirth); EmployeeService employeeService = new EmployeeService(); int numSucc = employeeService.AddEmployee(employee); if (numSucc > 0) { return RedirectToAction("Index"); } else { return View(); } }
[HttpPost] [ActionName("Create")] public ActionResult Create_Post() { Employee employee = new Employee(); UpdateModel<Employee>(employee); int numSucc = 0; if (ModelState.IsValid) { EmployeeService employeeService = new EmployeeService(); numSucc = employeeService.AddEmployee(employee); } if (numSucc > 0) { return RedirectToAction("Index"); } else { return View(); } }
public int AddEmployee(Employee employee) { int numSucc = 0; using (SqlConnection conn = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand("sp_AddEmployee", conn); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] paras = new SqlParameter[] { new SqlParameter("Name",employee.Name), new SqlParameter("Gender",employee.Gender), new SqlParameter("City",employee.City), new SqlParameter("DateOfBirth",employee.DateOfBirth) }; cmd.Parameters.AddRange(paras); conn.Open(); numSucc = cmd.ExecuteNonQuery(); } return numSucc; }
Controller中模型绑定的两种方法:
1,Bind 制定需要进行模型绑定传递到Controller中的数据。
public ActionResult Edit_Post([Bind(Include = "Gender , City,DateOfBirth")]Employee employee)
2,在UpdateModel中,传递需要更新或者是不需要更新的参数
UpdateModel<Employee>(employee, null, null, new string[] { "Name" });
3,定义IEmployee接口,Employee继承自IEmployee.
UpdateModel<IEmployee>(employee);
@foreach (var item in Model) { using (Html.BeginForm("Delete", "Employee", new { id = item.ID })) { <tr> <td> @Html.DisplayFor(modelItem => item.Name) </td> <td> @Html.DisplayFor(modelItem => item.Gender) </td> <td> @Html.DisplayFor(modelItem => item.City) </td> <td> @Html.DisplayFor(modelItem => item.DateOfBirth) </td> <td> @Html.ActionLink("Edit", "Edit", new { id = item.ID }) | @Html.ActionLink("Details", "Details", new { id = item.ID }) | <input type="submit" value="Delete" onclick="return confirm(‘确定删除 @item.Name 吗 ‘)" /> </td> </tr> } }
[MetadataType(typeof(EmployeeMetaData))] public partial class Employee { } public class EmployeeMetaData { [Required] [Display(Name = "姓名")] public string Name { get; set; } [Required] [Display(Name = "性别")] public char Gender { get; set; } [Required] [Display(Name = "所在城市")] public string City { get; set; } [Required] [Display(Name = "生日")] public DateTime DateOfBirth { get; set; } [Required] [Display(Name = "部门")] public int DepartID { get; set; } }
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Include = "ID,Gender,City,DateOfBirth,DepartID")] Employee employee) { Employee employeeFromDB = db.Employee.Find(employee.ID); //须要用你查出来的实体来存储更新后的数据,不更新Name字段 employeeFromDB.City = employee.City; employeeFromDB.Gender = employee.Gender; employeeFromDB.DepartID = employee.DepartID; employeeFromDB.DateOfBirth = employee.DateOfBirth; if (ModelState.IsValid) { db.Entry(employeeFromDB).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.DepartID = new SelectList(db.Department, "ID", "Name", employee.DepartID); return View(employee); }
if (string.IsNullOrEmpty(employee.Name)) { ModelState.AddModelError("Name", "姓名为必需字段"); }
[HttpGet] public ActionResult EmployeeByDepartment() { var departmentTotals = db.Employee.Include("Department") .GroupBy(d => d.Department.Name) .Select(y => new DepartmentTotals { Name = y.Key, Total = y.Count() }).ToList().OrderByDescending(y => y.Total); return View(departmentTotals); }
public ActionResult Index() { var employee = db.Employee.Include(e => e.Department); return View("~/Views/Employee/Index.cshtml",employee.ToList()); }
标签:
原文地址:http://www.cnblogs.com/i-shanghai/p/5814635.html