用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中的不要的进行删除。下面是相关显示效果图片。





浙公网安备 33010602011771号