Based on this tutorial but modified not to use Entity Framework, this example shows a simple ASP.NET MVC4 app.

index-mvc4

Create /Permits/Create
Edit /Permits/Edit/1
Details /Permits/Details/1
Delete /Permits/Delete/1

Model

using System.ComponentModel.DataAnnotations;

namespace MvcApplication6.Models
{
    public class Permit
    {
        [Required]
        public int Id { get; set; }
        public string Area { get; set; }
    }
}

Controller

using System.Web.Mvc;
using MvcApplication6.Models;
using MvcApplication6.Repos;

namespace MvcApplication6.Controllers
{
    public class PermitsController : Controller
    {
        private PermitRepository repos = new PermitRepository();

        //
        // GET: /Permits/
        public ActionResult Index()
        {
            return View(repos.Permits);
        }

        //
        // GET: /Permits/Details/5
        public ActionResult Details(int id = 0)
        {
            Permit permit = repos.FindPermit(id);
            if (permit == null)
            {
                return HttpNotFound();
            }
            return View(permit);
        }

        //
        // GET: /Permits/Create
        public ActionResult Create()
        {
            return View();
        }

        //
        // POST: /Permits/Create
        [HttpPost]
        public ActionResult Create(Permit permit)
        {
            if (ModelState.IsValid)
            {
                repos.AddPermit(permit);
                return RedirectToAction("Index");
            }

            return View(permit);
        }

        //
        // GET: /Permits/Edit/5
        public ActionResult Edit(int id = 0)
        {
            Permit permit = repos.FindPermit(id);
            if (permit == null)
            {
                return HttpNotFound();
            }
            return View(permit);
        }

        //
        // POST: /Permits/Edit/5
        [HttpPost]
        public ActionResult Edit(Permit permit)
        {
            if (ModelState.IsValid)
            {
                repos.UpdatePermit(permit);
                return RedirectToAction("Index");
            }
            return View(permit);
        }

        //
        // GET: /Movies/Delete/5

        public ActionResult Delete(int id = 0)
        {
            Permit permit = repos.FindPermit(id);
            if (permit == null)
            {
                return HttpNotFound();
            }
            return View(permit);
        }

        //
        // POST: /Movies/Delete/5

        [HttpPost, ActionName("Delete")]
        public ActionResult DeleteConfirmed(int id)
        {
            Permit permit = repos.FindPermit(id);
            repos.DeletePermit(permit);
            return RedirectToAction("Index");
        }
    }
}

View

Index.cshtml

index-mvc4


@model IEnumerable

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Permit Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>

<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model =&gt; model.Id)
        </th>
        <th>
            @Html.DisplayNameFor(model =&gt; model.Area)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem =&gt; item.Id)
        </td>
        <td>
            @Html.DisplayFor(modelItem =&gt; item.Area)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
            @Html.ActionLink("Details", "Details", new { id=item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.Id })
        </td>
    </tr>
}

</table>

Details.cshtml

details


@model MvcApplication6.Models.Permit

@{
    ViewBag.Title = "Details";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Details</h2>

<fieldset>
    <legend>Permit</legend>

    <div class="display-label">
         @Html.DisplayNameFor(model => model.Id)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Id)
    </div>

    <div class="display-label">
         @Html.DisplayNameFor(model => model.Area)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Area)
    </div>

</fieldset>
<p>
    @Html.ActionLink("Edit", "Edit", new { id=Model.Id }) |
    @Html.ActionLink("Back to List", "Index")
</p>

Create.cshtml

create

@model MvcApplication6.Models.Permit

@{
    ViewBag.Title = "Create";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Create</h2>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Permit</legend>
        
        <div class="editor-label">
            @Html.LabelFor(model => model.Id)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Id)
            @Html.ValidationMessageFor(model => model.Id)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Area)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Area)
            @Html.ValidationMessageFor(model => model.Area)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

Edit.cshtml

edit

@model MvcApplication6.Models.Permit

@{
    ViewBag.Title = "Edit";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Edit</h2>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Permit</legend>

        @Html.HiddenFor(model => model.Id)

        <div class="editor-label">
            @Html.LabelFor(model => model.Id)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Id)
            @Html.ValidationMessageFor(model => model.Id)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Area)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Area)
            @Html.ValidationMessageFor(model => model.Area)
        </div>

        <p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

Delete.cshtml

delete

@model MvcApplication6.Models.Permit

@{
    ViewBag.Title = "Delete";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Delete</h2>

<h3>Are you sure you want to delete this?</h3>
<fieldset>
    <legend>Permit</legend>

    <div class="display-label">
         @Html.DisplayNameFor(model => model.Id)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Id)
    </div>

    <div class="display-label">
         @Html.DisplayNameFor(model => model.Area)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Area)
    </div>

</fieldset>
@using (Html.BeginForm()) {
    <p>
        <input type="submit" value="Delete" /> |
        @Html.ActionLink("Back to List", "Index")
    </p>
}