您的位置:首页 > 编程语言 > ASP

ASP.NET MVC4(2)ASP.NET MVC4 Web应用之实现简单的增删改查

2017-03-06 20:07 453 查看
一、创建M002AdminDemo.cs

右键【Models】-->添加-->类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Ddup.Models
{
/// <summary>
/// 管理员模型演示
/// </summary>
public class M002AdminDemo
{
/// <summary>
/// 定义的一个查询所有管理员的方法
/// </summary>
/// <returns></returns>
public static IEnumerable<T001Admin> GetAll()
{
DdupEntities db = new DdupEntities();
return db.T001Admin;
}
/// <summary>
/// 定义的一个根据id查找对应管理员的方法
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static T001Admin GetById(int id)
{
DdupEntities db = new DdupEntities();
return db.T001Admin.FirstOrDefault(m => m.Id == id);
}
}
}


二、创建Vm002新增管理员视图模型.cs

右键【ViewModel】-->添加-->类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

//调用数据注释所需程序集
using System.ComponentModel.DataAnnotations;

namespace Ddup.Models.ViewModel
{
public class Vm002新增管理员视图模型
{
//required表示必填项,ErrorMessage返回错误信息
[Required(ErrorMessage = "{0},不能为空")]
//stringlength定义输入字符的范围(max,min,error)
[StringLength(20, MinimumLength = 10, ErrorMessage = "请输入{2}至{1}个字符")]
//定义属性在页面显示时的名称
[Display(Name = "账号")]
public string Account { get; set; }

[Required(ErrorMessage = "{0},不能为空")]
[StringLength(20, MinimumLength = 10, ErrorMessage = "请输入{2}至{1}个字符")]
[Display(Name = "密码")]
public string Password { get; set; }

[Required(ErrorMessage = "{0},不能为空")]
[StringLength(4, MinimumLength = 2, ErrorMessage = "请输入{2}至{1}个字符")]
[Display(Name = "姓名")]
public string Name { get; set; }

/// <summary>
/// 定义的  Vm002新增管理员视图模型  该类的一个空构造函数
/// </summary>
public Vm002新增管理员视图模型()
{
Account = "";
Password = "";
//为了后面(Create)演示,此处设置Name初始化值为Ddup
Name = "Ddup";
}

/// <summary>
/// 定义了将新增数据通过EF,插入到数据库中的方法
/// </summary>
public void Save()
{
using (DdupEntities db = new DdupEntities())
{
var t001 = new T001Admin()
{
Account=this.Account,
Password=this.Password,
Name=this.Name
};
db.T001Admin.Add(t001);
db.SaveChanges();
}
}
}
}


三、创建C02AdminController.cs控制器

右键【Controllers】-->添加控制器-->空的MVC5控制器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

using Ddup.Models;
using Ddup.Models.ViewModel;

namespace Ddup.Controllers
{
public class C02AdminController : Controller
{
/// <summary>
/// 使用GetAll()方法,返回所有管理员信息
/// </summary>
/// <returns></returns>
public ActionResult Index()
{
return View(M002AdminDemo.GetAll());
}

/// <summary>
/// 使用GetById()方法,通过传递的id来获取对应管理员的详细信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public ActionResult Details(int id)
{
var model = M002AdminDemo.GetById(id);
if (model == null) return View("Error");
return View(model);
}

/// <summary>
/// 定义get的新增action,调用 Vm002新增管理员视图模型 的空构造函数,初始化
/// </summary>
/// <returns></returns>
public ActionResult Create()
{
//通过此action,后面再新增页面Name的初始值会和 Vm002新增管理员视图模型 的空构造函数中
//所定义的初始化值一样。
return View(new Vm002新增管理员视图模型());
}

/// <summary>
/// 定义的post的新增action,在View中表单提交方式为POST时,将通过此action执行操作
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
public ActionResult Create(Vm002新增管理员视图模型 model)
{
//try,catch异常捕获
try
{
//判断模型状态是否有效,此处根据在 Vm002新增管理员视图模型 中对各个属性的数据注释来判断,对应输入的值是否有效
if (ModelState.IsValid)
{
//调用 Vm002新增管理员视图模型 中所定义的保存方法Save()
model.Save();
//return View("Index");
//return Redirect("~/C02Admin/Index");
return RedirectToAction("Index");
}
}
catch (Exception ex)
{
//将捕获的异常信息添加到""中,或者注明关键字(如:"Name"),将来在View中对应输出错误信息
ModelState.AddModelError("", ex.Message);
}
return View(model);
}

public ActionResult Edit(int id)
{
var model = M002AdminDem
ada9
o.GetById(id);
if (model == null) return View("Error");

//前台与后台之间的传值方法之一ViewData
//将通过id找到的模型数据,传递与视图数据关联的模型
ViewData.Model = model;
return View(model);
}

[HttpPost]
public ActionResult Edit(int id, FormCollection collection)
{
try
{
if (ModelState.IsValid)
{
DdupEntities db = new DdupEntities();
var model = db.T001Admin.FirstOrDefault(m => m.Id == id);

#region 1.0 更新model的关键字字段值(所有)

string[] strArr = collection.AllKeys;
TryUpdateModel(model, strArr);

#endregion

#region 2.0 更新model的关键字字段值(选择要更新关键字字段)

//TryUpdateModel(model, new string[] {"Account","Password","Name" });
#endregion

db.SaveChanges();
return RedirectToAction("Index");
}
}
catch (Exception ex)
{
ModelState.AddModelError("", ex.Message);
}
return View();
}

public ActionResult Delete(int id)
{
try
{
DdupEntities db = new DdupEntities(); ;
var t001 = db.T001Admin.FirstOrDefault(m => m.Id == id);
if (t001 != null)
{
db.T001Admin.Remove(t001);
db.SaveChanges();
return RedirectToAction("Index");
}
}
catch (Exception ex)
{
ModelState.AddModelError("", ex.Message);
}
return View();
}
}
}


四、创建对应的视图

添加返回所有管理员的Index视图



 添加返回对应id的管理员Details视图



添加新增视图



添加编辑视图

 


五、测试下我们所创建的增删改查功能吧



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐