用MVC5+EF6设计游戏一个BOSS刷新提示功能
简单的一个功能很实用。
一、建立一个BOSS表。
1.SORT,是管理BOSS的排序的参数,暂时没用
2.title:BOSS名称
3.updatetime 更新时间 ,以分钟计算
4.thistime 上次刷新时间 ,暂时没用
5.lasttime BOSS最后的刷新时间。
6.username 登录的用户名,谁增加的BOSS谁查看。
二、在数据库中随便增加一些默认的数据。
三、使用VS2013新建项目,http://www.cnblogs.com/xiaodeng1979/articles/5151103.htm,按这个的说明,安装EF6.同时用MVC5自带生成了用户 权限管理系统。同时让电脑能正常 的连上MSSQL进行验证。
四、在项目中新建DAL文件夹,添加 数据库上下文库。
BossContext.CS的源码如下
using listboss3.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; using System.Data.Entity.ModelConfiguration.Conventions; namespace listboss3.DAL { public class BossContext : DbContext { public BossContext() : base("MyOAContext") { } public DbSet<Boss> Bosses { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); } } }
五、设计模型。在MODEL文件夹下新建Boss.cs 模型,因为是单表,所以很简单。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.ComponentModel.DataAnnotations; namespace listboss3.Models { public class Boss { public int id { get; set; } public int sort { get; set; } public string title { get; set; } public int updatetime { get; set; } [DisplayFormat(DataFormatString = "{0:yyyy/MM/dd/ - hh:mm:ss}")] public DateTime thistime { get; set; } [DisplayFormat(DataFormatString = "{0:yyyy/MM/dd/ - HH:mm:ss}")] public DateTime lasttime { get; set; } public string username { get; set; } } }
五、新建控制器:
BossController.cs
using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Linq; using System.Net; using System.Web; using System.Web.Mvc; using listboss3.Models; using listboss3.DAL; using System.Text; using System.Data.Entity.Infrastructure; using Microsoft.AspNet.Identity; using Microsoft.AspNet.Identity.EntityFramework; namespace listboss3.Controllers { public class BossController : Controller { private BossContext db = new BossContext(); // GET: /Boss/ [Authorize] public ActionResult Index() { string xxxx = User.Identity.GetUserName(); var listbos = from s in db.Bosses where s.username==xxxx select s; listbos = listbos.OrderBy(s => s.lasttime); return View(listbos.ToList()); } [Authorize] // GET: /Boss/ public ActionResult ListBoss() { return View(db.Bosses.ToList()); } [Authorize] // GET: /Boss/Edit/5 public ActionResult Edit1(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Boss boss = db.Bosses.Find(id); int x = boss.updatetime; ModelState.Clear(); boss.lasttime = DateTime.Now.AddMinutes(x); if (boss == null) { return HttpNotFound(); } return View(boss); } // POST: /Boss/Edit/5 // 为了防止“过多发布”攻击,请启用要绑定到的特定属性,有关 // 详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=317598。 [HttpPost] [ValidateAntiForgeryToken] //public ActionResult Edit1([Bind(Include = "id,sort,title,updatetime,thistime,lasttime,username")] Boss boss) //{ // if (ModelState.IsValid) // { // db.Entry(boss).State = EntityState.Modified; // db.Entry(boss.lasttime).State= // db.SaveChanges(); // } // return View(boss); //} public ActionResult Edit1([Bind(Include = "id,sort,title,updatetime,thistime,lasttime,username")] Boss boss) { if (ModelState.IsValid) { db.Entry(boss).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(boss); } [Authorize] // GET: /Boss/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Boss boss = db.Bosses.Find(id); if (boss == null) { return HttpNotFound(); } return View(boss); } // GET: /Boss/Create public ActionResult Create() { return View(); } // GET: /Boss/Create/5 //public ActionResult Create() //{ // Boss boss =new Boss(); // boss.sort=1; // boss.thistime = DateTime.Now; // boss.lasttime = DateTime.Now; // boss.username = User.Identity.GetUserName(); // return View(boss); //} [Authorize] // POST: /Boss/Create // 为了防止“过多发布”攻击,请启用要绑定到的特定属性,有关 // 详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=317598。 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include="id,sort,title,updatetime,thistime,lasttime,username")] Boss boss) { if (ModelState.IsValid) { boss.lasttime = DateTime.Now; boss.thistime = DateTime.Now; boss.username = User.Identity.GetUserName(); db.Bosses.Add(boss); db.SaveChanges(); return RedirectToAction("Index"); } return View(boss); } [Authorize] // GET: /Boss/Edit/5 public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Boss boss = db.Bosses.Find(id); if (boss == null) { return HttpNotFound(); } return View(boss); } [Authorize] // POST: /Boss/Edit/5 // 为了防止“过多发布”攻击,请启用要绑定到的特定属性,有关 // 详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=317598。 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Include="id,sort,title,updatetime,thistime,lasttime,username")] Boss boss) { if (ModelState.IsValid) { db.Entry(boss).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(boss); } [Authorize] // GET: /Boss/Delete/5 public ActionResult Delete(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Boss boss = db.Bosses.Find(id); if (boss == null) { return HttpNotFound(); } return View(boss); } [Authorize] // POST: /Boss/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(int id) { Boss boss = db.Bosses.Find(id); db.Bosses.Remove(boss); db.SaveChanges(); return RedirectToAction("Index"); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }
这是修改完后的控制器。呵呵。
六,对View中的不要的进行删除。下面是相关显示效果图片。