首页 技术 正文
技术 2022年11月15日
0 收藏 510 点赞 2,391 浏览 4474 个字

初入码田–ASP.NET MVC4 Web应用之创建一个空白的MVC应用程序

初入码田–ASP.NET MVC4 Web应用开发之一 实现简单的登录

2016-07-29

 一、创建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(, MinimumLength = , ErrorMessage = "请输入{2}至{1}个字符")]
//定义属性在页面显示时的名称
[Display(Name = "账号")]
public string Account { get; set; } [Required(ErrorMessage = "{0},不能为空")]
[StringLength(, MinimumLength = , ErrorMessage = "请输入{2}至{1}个字符")]
[Display(Name = "密码")]
public string Password { get; set; } [Required(ErrorMessage = "{0},不能为空")]
[StringLength(, MinimumLength = , 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 = M002AdminDemo.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视图

初入码田–ASP.NET MVC4 Web应用开发之二 实现简单的增删改查

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

初入码田–ASP.NET MVC4 Web应用开发之二 实现简单的增删改查

添加新增视图

初入码田–ASP.NET MVC4 Web应用开发之二 实现简单的增删改查

添加编辑视图

初入码田–ASP.NET MVC4 Web应用开发之二 实现简单的增删改查

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

初入码田–ASP.NET MVC4 Web应用开发之二 实现简单的增删改查

初入码田–ASP.NET MVC4 Web应用开发之二 实现简单的增删改查

本人属于初学者,如果有何不足,还请见谅,也希望大家多多给意见,谢谢!!!

=================================================================================================

作者:程程程
出处:http://rcddup.cnblogs.com
本文由程程程原创,并发布到博客园,欢迎转载,但必须在文章页面明显位置写明作者和出处,非常感谢!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,033
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,520
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,368
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,148
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,781
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,862