diff --git a/AspNetFrameworkMVC/AspNetFrameworkMVC/Controllers/GuestsController.cs b/AspNetFrameworkMVC/AspNetFrameworkMVC/Controllers/GuestsController.cs
new file mode 100644
index 0000000..7b060e2
--- /dev/null
+++ b/AspNetFrameworkMVC/AspNetFrameworkMVC/Controllers/GuestsController.cs
@@ -0,0 +1,127 @@
+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 AspNetFrameworkMVC.Models;
+
+namespace AspNetFrameworkMVC.Controllers
+{
+ public class GuestsController : Controller
+ {
+ private GuestDbContext db = new GuestDbContext();
+
+ // GET: Guests
+ public ActionResult Index()
+ {
+ return View(db.Guests.ToList());
+ }
+
+ // GET: Guests/Details/5
+ public ActionResult Details(int? id)
+ {
+ if (id == null)
+ {
+ return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
+ }
+ Guest guest = db.Guests.Find(id);
+ if (guest == null)
+ {
+ return HttpNotFound();
+ }
+ return View(guest);
+ }
+
+ // GET: Guests/Create
+ public ActionResult Create()
+ {
+ return View();
+ }
+
+ // POST: Guests/Create
+ // 초과 게시 공격으로부터 보호하려면 바인딩하려는 특정 속성을 사용하도록 설정하세요.
+ // 자세한 내용은 https://go.microsoft.com/fwlink/?LinkId=317598을(를) 참조하세요.
+ [HttpPost]
+ [ValidateAntiForgeryToken]
+ public ActionResult Create([Bind(Include = "Id,Name,CreatedDate,Message")] Guest guest)
+ {
+ if (ModelState.IsValid)
+ {
+ db.Guests.Add(guest);
+ db.SaveChanges();
+ return RedirectToAction("Index");
+ }
+
+ return View(guest);
+ }
+
+ // GET: Guests/Edit/5
+ public ActionResult Edit(int? id)
+ {
+ if (id == null)
+ {
+ return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
+ }
+ Guest guest = db.Guests.Find(id);
+ if (guest == null)
+ {
+ return HttpNotFound();
+ }
+ return View(guest);
+ }
+
+ // POST: Guests/Edit/5
+ // 초과 게시 공격으로부터 보호하려면 바인딩하려는 특정 속성을 사용하도록 설정하세요.
+ // 자세한 내용은 https://go.microsoft.com/fwlink/?LinkId=317598을(를) 참조하세요.
+ [HttpPost]
+ [ValidateAntiForgeryToken]
+ public ActionResult Edit([Bind(Include = "Id,Name,CreatedDate,Message")] Guest guest)
+ {
+ if (ModelState.IsValid)
+ {
+ db.Entry(guest).State = EntityState.Modified;
+ db.SaveChanges();
+ return RedirectToAction("Index");
+ }
+ return View(guest);
+ }
+
+ // GET: Guests/Delete/5
+ public ActionResult Delete(int? id)
+ {
+ if (id == null)
+ {
+ return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
+ }
+ Guest guest = db.Guests.Find(id);
+ if (guest == null)
+ {
+ return HttpNotFound();
+ }
+ return View(guest);
+ }
+
+ // POST: Guests/Delete/5
+ [HttpPost, ActionName("Delete")]
+ [ValidateAntiForgeryToken]
+ public ActionResult DeleteConfirmed(int id)
+ {
+ Guest guest = db.Guests.Find(id);
+ db.Guests.Remove(guest);
+ db.SaveChanges();
+ return RedirectToAction("Index");
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ db.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+ }
+}
diff --git a/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Create.cshtml b/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Create.cshtml
new file mode 100644
index 0000000..1e9b74d
--- /dev/null
+++ b/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Create.cshtml
@@ -0,0 +1,56 @@
+@model AspNetFrameworkMVC.Models.Guest
+
+@{
+ ViewBag.Title = "Create";
+}
+
+Create
+
+
+@using (Html.BeginForm())
+{
+ @Html.AntiForgeryToken()
+
+
+}
+
+
+ @Html.ActionLink("Back to List", "Index")
+
+
+@section Scripts {
+ @Scripts.Render("~/bundles/jqueryval")
+}
diff --git a/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Delete.cshtml b/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Delete.cshtml
new file mode 100644
index 0000000..45e673e
--- /dev/null
+++ b/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Delete.cshtml
@@ -0,0 +1,48 @@
+@model AspNetFrameworkMVC.Models.Guest
+
+@{
+ ViewBag.Title = "Delete";
+}
+
+Delete
+
+Are you sure you want to delete this?
+
+
Guest
+
+
+ -
+ @Html.DisplayNameFor(model => model.Name)
+
+
+ -
+ @Html.DisplayFor(model => model.Name)
+
+
+ -
+ @Html.DisplayNameFor(model => model.CreatedDate)
+
+
+ -
+ @Html.DisplayFor(model => model.CreatedDate)
+
+
+ -
+ @Html.DisplayNameFor(model => model.Message)
+
+
+ -
+ @Html.DisplayFor(model => model.Message)
+
+
+
+
+ @using (Html.BeginForm()) {
+ @Html.AntiForgeryToken()
+
+
+ |
+ @Html.ActionLink("Back to List", "Index")
+
+ }
+
diff --git a/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Details.cshtml b/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Details.cshtml
new file mode 100644
index 0000000..4076451
--- /dev/null
+++ b/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Details.cshtml
@@ -0,0 +1,42 @@
+@model AspNetFrameworkMVC.Models.Guest
+
+@{
+ ViewBag.Title = "Details";
+}
+
+Details
+
+
+
Guest
+
+
+ -
+ @Html.DisplayNameFor(model => model.Name)
+
+
+ -
+ @Html.DisplayFor(model => model.Name)
+
+
+ -
+ @Html.DisplayNameFor(model => model.CreatedDate)
+
+
+ -
+ @Html.DisplayFor(model => model.CreatedDate)
+
+
+ -
+ @Html.DisplayNameFor(model => model.Message)
+
+
+ -
+ @Html.DisplayFor(model => model.Message)
+
+
+
+
+
+ @Html.ActionLink("Edit", "Edit", new { id = Model.Id }) |
+ @Html.ActionLink("Back to List", "Index")
+
diff --git a/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Edit.cshtml b/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Edit.cshtml
new file mode 100644
index 0000000..d237780
--- /dev/null
+++ b/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Edit.cshtml
@@ -0,0 +1,58 @@
+@model AspNetFrameworkMVC.Models.Guest
+
+@{
+ ViewBag.Title = "Edit";
+}
+
+Edit
+
+
+@using (Html.BeginForm())
+{
+ @Html.AntiForgeryToken()
+
+
+}
+
+
+ @Html.ActionLink("Back to List", "Index")
+
+
+@section Scripts {
+ @Scripts.Render("~/bundles/jqueryval")
+}
diff --git a/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Index.cshtml b/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Index.cshtml
new file mode 100644
index 0000000..98ef1a1
--- /dev/null
+++ b/AspNetFrameworkMVC/AspNetFrameworkMVC/Views/Guests/Index.cshtml
@@ -0,0 +1,45 @@
+@model IEnumerable
+
+@{
+ ViewBag.Title = "Index";
+}
+
+Index
+
+
+ @Html.ActionLink("Create New", "Create")
+
+
+
+
+ @Html.DisplayNameFor(model => model.Name)
+ |
+
+ @Html.DisplayNameFor(model => model.CreatedDate)
+ |
+
+ @Html.DisplayNameFor(model => model.Message)
+ |
+ |
+
+
+@foreach (var item in Model) {
+
+
+ @Html.DisplayFor(modelItem => item.Name)
+ |
+
+ @Html.DisplayFor(modelItem => item.CreatedDate)
+ |
+
+ @Html.DisplayFor(modelItem => item.Message)
+ |
+
+ @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
+ @Html.ActionLink("Details", "Details", new { id=item.Id }) |
+ @Html.ActionLink("Delete", "Delete", new { id=item.Id })
+ |
+
+}
+
+