- 博客(0)
- 资源 (9)
- 收藏
- 关注
使用MVC5的Entity Framework 教程源码
创建了一个使用实体框架和SQL Server Express LocalDB来存储和显示数据的简单Web应用程序.
实现了基本的CRUD和排序、筛选、分页及分组功能.
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 ContosoUniversity.DAL;
using ContosoUniversity.Models;
using PagedList;
namespace ContosoUniversity.Controllers
{
public class StudentsController : Controller
{
private SchoolContext db = new SchoolContext();
// GET: Students
//public ActionResult Index()
//{
// return View(db.Students.ToList());
//}
/* step1
public ActionResult Index(string sortOrder) {
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
var students = from s in db.Students
select s;
switch (sortOrder) {
case "name_desc":
students = students.OrderByDescending(s => s.LastName);
break;
case "Date":
students = students.OrderBy(s => s.EnrollmentDate);
break;
case "date_desc":
students = students.OrderByDescending(s => s.EnrollmentDate);
break;
default:
students = students.OrderBy(s => s.LastName);
break;
}
return View(students.ToList());
}
*/
/*step2
public ViewResult Index(string sortOrder, string searchString) {
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
var students = from s in db.Students
select s;
if (!String.IsNullOrEmpty(searchString)) {
students = students.Where(s => s.LastName.Contains(searchString)
|| s.FirstMidName.Contains(searchString));
}
switch (sortOrder) {
case "name_desc":
students = students.OrderByDescending(s => s.LastName);
break;
case "Date":
students = students.OrderBy(s => s.EnrollmentDate);
break;
case "date_desc":
students = students.OrderByDescending(s => s.EnrollmentDate);
break;
default:
students = students.OrderBy(s => s.LastName);
break;
}
return View(students.ToList());
}
*/
public ViewResult Index(string sortOrder, string currentFilter, string searchString, int? page) {
ViewBag.CurrentSort = sortOrder;
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
if (searchString != null) {
page = 1;
} else {
searchString = currentFilter;
}
ViewBag.CurrentFilter = searchString;
var students = from s in db.Students
select s;
if (!String.IsNullOrEmpty(searchString)) {
students = students.Where(s => s.LastName.Contains(searchString)
|| s.FirstMidName.Contains(searchString));
}
switch (sortOrder) {
case "name_desc":
students = students.OrderByDescending(s => s.LastName);
break;
case "Date":
students = students.OrderBy(s => s.EnrollmentDate);
break;
case "date_desc":
students = students.OrderByDescending(s => s.EnrollmentDate);
break;
default: // Name ascending
students = students.OrderBy(s => s.LastName);
break;
}
int pageSize = 6;
int pageNumber = (page ?? 1);
return View(students.ToPagedList(pageNumber, pageSize));
}
// GET: Students/Details/5
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Student student = db.Students.Find(id);
if (student == null)
{
return HttpNotFound();
}
return View(student);
}
// GET: Students/Create
public ActionResult Create()
{
return View();
}
// POST: Students/Create
// 为了防止“过多发布”攻击,请启用要绑定到的特定属性,有关
// 详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=317598。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "LastName,FirstMidName,EnrollmentDate")] Student student) {
try {
if (ModelState.IsValid) {
db.Students.Add(student);
db.SaveChanges();
return RedirectToAction("Index");
}
}
catch(DataException /* dex */) {
//Log the error (uncomment dex variable name and add a line here to write a log.
ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
}
return View(student);
}
// GET: Students/Edit/5
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Student student = db.Students.Find(id);
if (student == null)
{
return HttpNotFound();
}
return View(student);
}
// POST: Students/Edit/5
// 为了防止“过多发布”攻击,请启用要绑定到的特定属性,有关
// 详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=317598。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "ID,LastName,FirstMidName,EnrollmentDate")] Student student)
{
if (ModelState.IsValid)
{
db.Entry(student).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(student);
}
// GET: Students/Delete/5
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
//if (saveChangesError.GetValueOrDefault()) {
// ViewBag.ErrorMessage = "Delete failed. Try again, and if the problem persists see your system administrator.";
//}
Student student = db.Students.Find(id);
if (student == null)
{
return HttpNotFound();
}
return View(student);
}
// POST: Students/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Student student = db.Students.Find(id);
db.Students.Remove(student);
db.SaveChanges();
return RedirectToAction("Index");
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
}
}
2019-03-17
WinDiff[文件比较工具软件]
WinDiff是进行Windows的文件比较工具软件。 使用这个工具可对2个文件或2个文件夹中的文件进行ASCII码形式的比较,从而找出两者间的不同之处,并以显而易见方式标示出来。这一工具对于经常编一些程序、手写html文件、文本处理的用户来说是十分有用的。
2017-11-29
自己做Fiddler实现http网站的抓取
// 为了使反应篡改,必须使用缓冲模式
// 被启用。这允许FiddlerCore以允许修改
// 在BeforeResponse处理程序中的反应,而不是流
// 响应给客户机作为响应进来。
oS.bBufferResponse = true;
Monitor.Enter(oAllSessions);
oAllSessions.Add(oS);
Monitor.Exit(oAllSessions);
};
// 下面的事件,您可以检查由Fiddler阅读每一响应缓冲区。
// 请注意,这不是为绝大多数应用非常有用,因为原始缓冲区几乎是无用的;它没有解压,它包括标题和正文字节数等。
// 本次仅适用于极少数的应用程序这就需要一个原始的,未经处理的字节流获取有用
//Fiddler.FiddlerApplication.OnReadResponseBuffer += new EventHandler(FiddlerApplication_OnReadResponseBuffer);
2017-11-24
ubnt路由器中文版配置手册
UBNT 是大家广为人知的 无线覆盖 设备之一,UBNT 组网方式 可以分为 点对点和点对多点,首先 我先为大家介绍一下UBNT: UBNT N设备是802.11n设备,根据不同频率分为2.4G设备和5.8G设备,2.4G设备 命名格式为UBNT xx M2,同样5.8G设备 命名为UBNT xxM5(xx 代表UBNT的设备类型), UBNT 的每一个设备 都可以当作 AP 或者是站 来使用,模式分为 AP 、站、APWDS、站WDS,而且 UBNT有中文见面 ,方便操作,让新手 也非常容易上手。 这个帖子就介绍一下 UBNT的 点对点详细设置教程,也是最简单的一种。
2017-11-21
UBNT,ER_X(ER-e50.v1.9.1.1.4977602)固件
1.EdgeRouter 固件版本的下载
(1)从 http://www.ubnt.com/download/ 页面,或在 UBNT 官网找到 download 进入下载页面:
(2)当跳转到下载页面后,选择平台系列为 EdgeMAX,然后选择对应的产品组。
(3)当前页面会出现最新固件版本信息,然后点击 download 下载图标按照页面提示进行固件版本下载。
(4)建议存放到电脑上 D 盘根目录或个人帐号桌面以方便后续固件升级作业。
2017-11-21
Fiddler调试权威指南PDF最新版
Fiddler是一种流行的Web调试代理。它功能强大,界面友好,简单易用,无论对开发人员或者测试人员来说,都是非常有用的工具。 《Fiddler调试权威指南》是Fiddler的开发者Eric Lawrence编写的一本权威的参考指南。全书分为10章和4个附录,从认识Fiddler开始,介绍了基本技巧和概念、配置选项、Inspectors、扩展、数据流导入导出、FiddlerScript和FiddlerCore等主题;附录部分还给出了故障排除和命令行等有用的参考信息。 《Fiddler调试权威指南》适合Web开发人员和Web测试人员阅读参考,也适合想要学习和掌握Fiddler的读者阅读。通过《Fiddler调试权威指南》,你将学会如何利用Fiddler调试Web相关的应用,掌握如何调试HTTPS数据流,学会如何在流行的设备上使用Fiddler,甚至掌握更多高级的扩展功能。
2017-11-21
c#自定义消息框,重写MessageBox,消息提示框
Windows自带的消息框比较丑,特别是转到WIN7下更加,项目中用到的消息框非常多,基本上有提示信息、错误信息、询问信息这三种,从美观角度,MessageBox.show()这个方法出来的消息框有点不尽人意,于是自己写了一个,个人觉得舒服些。
2016-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人