crud operation in asp.net mvc with codefirst approach

 1.Simple CRUD Application with CodeFirst Approach in MVC.

First Step:- Create a Project  in Visual Studio with Name "CrudOperation", Select MVC from project template.Your project is ready.

Second Step:- Add following two Classes in your Model Folder


using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

 

1.

namespace CrudOperation.Models

{

    public class Student

    {

        public int Id { getset; }

        public string Name { getset; }

        public int Age { getset; }

        public string City { getset; }

    }

}


2.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Data.Entity; 

namespace CrudOperation.Models

{

    public class AppContext:DbContext

    {

        public AppContext():base("DefaultConnection")

        { 

        } 

        public DbSet<Student> Student { getset; }

    }

}    


Third Step:- Add Connection String to webconfig file

  <connectionStrings>

    <add name="DefaultConnection" connectionString="Data Source=.\SqlExpress; Integrated Security=SSPI; Initial Catalog=Demo" providerName="System.Data.SqlClient"/>

  </connectionStrings>


Fouth Step:- Open Package Manager Console ,run the following command

1.enable-migrations

2.add-migration Init

3.update-database

Now a Database will be created for your application in Sql-Sever

Fourth-Step:- Add Controller in Controller Folder with option "Controller with views and EntityFramework"

Now Your full Crud Operation will create using Scaffolding Framework in MVC.

   

Controller Class Method:-  

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 CrudOperation.Models;

 

namespace CrudOperation.Controllers

{

    public class StudentController : Controller

    {

        private AppContext db = new AppContext();

 

        // GET: Student

        public ActionResult Index()

        {

            return View(db.Students.ToList());

        }

 

        // GET: Student/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: Student/Create

        public ActionResult Create()

        {

            return View();

        }

 

        // POST: Student/Create

        // To protect from overposting attacks, please enable the specific properties you want to bind to, for

        // more details see http://go.microsoft.com/fwlink/?LinkId=317598.

        [HttpPost]

        [ValidateAntiForgeryToken]

        public ActionResult Create([Bind(Include = "Id,Name,Age,City")] Student student)

        {

            if (ModelState.IsValid)

            {

                db.Students.Add(student);

                db.SaveChanges();

                return RedirectToAction("Index");

            }

 

            return View(student);

        }

 

        // GET: Student/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: Student/Edit/5

        // To protect from overposting attacks, please enable the specific properties you want to bind to, for

        // more details see http://go.microsoft.com/fwlink/?LinkId=317598.

        [HttpPost]

        [ValidateAntiForgeryToken]

        public ActionResult Edit([Bind(Include = "Id,Name,Age,City")] Student student)

        {

            if (ModelState.IsValid)

            {

                db.Entry(student).State = EntityState.Modified;

                db.SaveChanges();

                return RedirectToAction("Index");

            }

            return View(student);

        }

 

        // GET: Student/Delete/5

        public ActionResult Delete(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: Student/Delete/5

        [HttpPostActionName("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);

        }

    }

}

 

Create View


@model CrudOperation.Models.Student 

@{

    ViewBag.Title = "Create";

} 

<h2>Create</h2> 

@using (Html.BeginForm())

{

    @Html.AntiForgeryToken()

   

    <div class="form-horizontal">

        <h4>Student</h4>

        <hr />

        @Html.ValidationSummary(true""new { @class = "text-danger" })

        <div class="form-group">

            @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })

            <div class="col-md-10">

                @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })

                @Html.ValidationMessageFor(model => model.Name, ""new { @class = "text-danger" })

            </div>

        </div> 

        <div class="form-group">

            @Html.LabelFor(model => model.Age, htmlAttributes: new { @class = "control-label col-md-2" })

            <div class="col-md-10">

                @Html.EditorFor(model => model.Age, new { htmlAttributes = new { @class = "form-control" } })

                @Html.ValidationMessageFor(model => model.Age, ""new { @class = "text-danger" })

            </div>

        </div> 

        <div class="form-group">

            @Html.LabelFor(model => model.City, htmlAttributes: new { @class = "control-label col-md-2" })

            <div class="col-md-10">

                @Html.EditorFor(model => model.City, new { htmlAttributes = new { @class = "form-control" } })

                @Html.ValidationMessageFor(model => model.City, ""new { @class = "text-danger" })

            </div>

        </div>

 

        <div class="form-group">

            <div class="col-md-offset-2 col-md-10">

                <input type="submit" value="Create" class="btn btn-default" />

            </div>

        </div>

    </div>

} 

<div>

    @Html.ActionLink("Back to List""Index")

</div> 

@section Scripts {

    @Scripts.Render("~/bundles/jqueryval")

}

 



Index View

@model IEnumerable<CrudOperation.Models.Student>

 

@{

    ViewBag.Title = "Index";

} 

<h2>Index</h2> 

<p>

    @Html.ActionLink("Create New""Create")

</p>

<table class="table">

    <tr>

        <th>

            @Html.DisplayNameFor(model => model.Name)

        </th>

        <th>

            @Html.DisplayNameFor(model => model.Age)

        </th>

        <th>

            @Html.DisplayNameFor(model => model.City)

        </th>

        <th></th>

    </tr>

 

@foreach (var item in Model) {

    <tr>

        <td>

            @Html.DisplayFor(modelItem => item.Name)

        </td>

        <td>

            @Html.DisplayFor(modelItem => item.Age)

        </td>

        <td>

            @Html.DisplayFor(modelItem => item.City)

        </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>

No comments:

Post a Comment