Introduction : 
ASP.NET MVC makes use of the MVC design pattern and 
the result is far different at code level. ASP.NET MVC divides the entire 
processing logic into three distinct parts namely model, view and controller. In 
the process views (that represent UI under MVC architecture) needed to sacrifice 
three important features of web forms: Post backs, View State and rich event 
model. Let's quickly see why this sacrifice is necessary. Remember that in the 
following sections when I say "web form" I mean the original web form model and 
when I say "MVC web page" I mean MVC based web forms, though technically they 
belong to the same inheritance chain.
To illustrate how we can use ASP.NET server controls in an ASP.NET MVC web pages we will develop a sample application. In this application we will make use of the GridView and Details View controls. The application adds, edits, deletes and selects records from an Employees table.
Step 1:
- Go to file -> New->Projects.
 - Open  ASP.NET MVC 2 Empty Web 
	Application.
 
![start.gif]()
Step 2:
- Right click on the  App_Data Folder ->Add 
	New Item ->SQL Server Database.
 - After attach a database. Right click of 
	database and add a table name is "Employee".
 - The fields of these table 
	"Id,Name,Salary".
 - Add some values in a table for testing 
	purposes.
 
![SQL.gif]()
![tableschema.gif]()
![TableRecords.gif]()
Step 3:
- Then add a new LINQ to SQL Classes (.dbml) 
	file to Models folder. Drag and drop Employees table onto its design surface 
	from the Server Explorer. Doing so will create a LINQ to SQL class 
	(Employee) for Employees table. This class will form the model for our MVC 
	pages.
 - Right click of  Model  Folder -> 
	Add ->Add New Items-> Add  LINQ to SQL Classes (.dbml).
 
![linqqq.gif]()
Step 4 :
- Right Click of View Folder->Add a files.
 - Name is "Index".
 
 
![gridview.gif]()
![temlatefield.gif]()
Code :
<%@
Page Language="C#"
Inherits="System.Web.Mvc.ViewPage"
%>
<!DOCTYPE
html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script
runat="server">
    protected 
void Page_Load(object sender,
EventArgs e)
    {
        GridView1.DataSource = ViewData["emplist"];
        GridView1.DataBind();
    }
</script>
<html>
<head>
<title>
</title>
</head>
<body>
   
<form
id="form1"
runat="server">
    <asp:GridView
ID="GridView1"
runat="server"
EnableModelValidation="True">
        <Columns>
            <asp:HyperLinkField
HeaderText="Edit"
DataNavigateUrlFields="Id"
    DataNavigateUrlFormatString="~/Employee/ShowUpdateView/{0}"
    Text="Edit"
></asp:HyperLinkField>
            <asp:HyperLinkField
DataNavigateUrlFields="Id"
    DataNavigateUrlFormatString="~/Employee/Delete/{0}"
    Text="Delete"
>
</asp:HyperLinkField>
           
<asp:TemplateField
HeaderText="Id">
            <ItemTemplate>
        <asp:Label
ID="Label1"
runat="server"
        Text='<%# 
Bind("Id") %>'></asp:Label>
    </ItemTemplate></asp:TemplateField>
            <asp:TemplateField
HeaderText="Name">
            <ItemTemplate>
        <asp:Label
ID="Label1"
runat="server"
        Text='<%# 
Bind("Name") %>'></asp:Label>
    </ItemTemplate></asp:TemplateField>
        </Columns>
     </asp:GridView>
    <div>
    </div>
    </form>
</body></html>
Step 5 :
- Right click on the Controllers Folder -> add 
	Controllers name as "EmployeeControllers".
 
![trolew.gif]()
Code:
using 
System;
using 
System.Collections.Generic;
using 
System.Linq;
using System.Web;
using 
System.Web.Mvc;
using 
MvcApplication6.Models;
namespace 
MvcApplication6.Controllers
{
    public class
EmployeeController :
Controller
    {
     public
ActionResult Index()
        {
            DataClasses1DataContext db =
new 
DataClasses1DataContext();
            
IQueryable<Employee> emplist =
from rows in 
db.Employees select rows;
            ViewData["emplist"] = emplist;
            return View();
        }
        public 
ActionResult ShowInsertView()
        {
            return View();
        }
        [HttpPost]
        public 
ActionResult Insert(FormCollection 
collection)
        {
            DataClasses1DataContext db =
new 
DataClasses1DataContext();
            Employee item =
new Employee();
            item.Name = collection["DetailsView1$txtName"];
            item.Notes = collection["DetailsView1$txtNotes"];
            db.Employees.InsertOnSubmit(item);
            db.SubmitChanges();
            return RedirectToAction("Index");
        }
        public 
ActionResult ShowUpdateView(int id)
        {
            DataClasses1DataContext db =
new 
DataClasses1DataContext();
            var temp =
from item in 
db.Employees
                       where item.Id == id
                       select item;
            ViewData["emplist"] = 
temp.ToList();
            return View();
        }
        [HttpPost]
        public 
ActionResult Update(int id,
FormCollection collection)
        {
            DataClasses1DataContext db =
new 
DataClasses1DataContext();
            var temp =
from item in 
db.Employee where item.Id == id
select item;
            temp.First().Name = collection["DetailsView1$txtName"];
            temp.First().Notes = collection["DetailsView1$txtNotes"];
            db.SubmitChanges();
            return RedirectToAction("Index");
        }
        public 
ActionResult Delete(int id)
        {
            DataClasses1DataContext db =
new 
DataClasses1DataContext();
            var temp =
from item in 
db.Employees where item.Id == id
select item;
            db.Employees.DeleteOnSubmit(temp.First());
            db.SubmitChanges();
            return RedirectToAction("Index");
        }
    }
}
Step 5 : 
![insert-view.gif]()
Code :
<%@
Page Language="C#"
Inherits="System.Web.Mvc.ViewPage"
%>
<!DOCTYPE
html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script
runat="server">
    protected 
void Page_Load(object sender,
EventArgs e)
    {
        object emplist = ViewData["emplist"];
        DetailsView1.DataSource = emplist;
        DetailsView1.DataBind();
    }
</script>
<html
xmlns="http://www.w3.org/1999/xhtml"
>
<head
runat="server">
    <title>ShowInsertView</title>
</head>
<body>
   
<form
id="form1"
runat="server">
    <asp:DetailsView
ID="DetailsView1"
runat="server"
Height="50px"
Width="125px"
        DataSourceID="SqlDataSource1"
EnableModelValidation="True">
    <Fields>
     <asp:TemplateField
HeaderText="Name :">
         <InsertItemTemplate>
           <asp:TextBox
ID="txtName"
runat="server"
             Text='<%# 
Bind("Name") %>'
/>
         </InsertItemTemplate>
     </asp:TemplateField>
     <asp:TemplateField
HeaderText="Notes :">
        <InsertItemTemplate>
           <asp:TextBox
ID="txtNotes"
runat="server"
             Text='<%# 
Bind("Notes") %>'
Rows="3" 
             TextMode="MultiLine"></asp:TextBox>
        </InsertItemTemplate>
    </asp:TemplateField>
    </Fields>
    <FooterTemplate>
     <asp:Button
ID="Button1"
runat="server"
       PostBackUrl="~/Employee/Insert"
       Text="Save"
Width="75px"
/>
    </FooterTemplate>
    </asp:DetailsView>
    <asp:SqlDataSource
ID="SqlDataSource1"
runat="server"
        ConnectionString="<%$ 
ConnectionStrings:Database1ConnectionString %>"
        SelectCommand="SELECT 
[Id], [Name], [Notes] FROM [Employees]">
    </asp:SqlDataSource>
    <div>
    </div>
    </form>
</body>
</html>
Step 6:
![update-inage.gif]()
Code :
<%@
Page Language="C#"
Inherits="System.Web.Mvc.ViewPage"
%>
<!DOCTYPE
html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
>
<head
runat="server">
    <title>ShowUpdateView</title>
</head>
<body>
   
<form
id="form1"
runat="server">
    <div>
        <asp:DetailsView
ID="DetailsView1"
runat="server"
DefaultMode="Edit"
Height="50px"
Width="125px">
        <Fields>
        <asp:TemplateField
HeaderText="Id :">
            <EditItemTemplate>
                <asp:Label
ID="Label1"
runat="server"
                 Text='<%# 
Bind("Id") %>'></asp:Label>
            </EditItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField
HeaderText="Name :">
            <EditItemTemplate>
                <asp:TextBox
ID="txtName"
runat="server"
                  Text='<%# 
Bind("Name") %>'></asp:TextBox>
            </EditItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField
HeaderText="Notes :">
            <EditItemTemplate>
                <asp:TextBox
ID="txtNotes"
runat="server"
                  Text='<%# 
Bind("Notes") %>'
Rows="3" 
                  TextMode="MultiLine"></asp:TextBox>
            </EditItemTemplate>
        </asp:TemplateField>
    </Fields>
    <FooterTemplate>
        <asp:Button
ID="Button1"
runat="server"
            PostBackUrl='<%# 
Eval("Id","~/Employee/Update/{0}") %>'
            Text="Save"
Width="75px"
/>
    </FooterTemplate>
</asp:DetailsView>
    </div>
    </form>
</body></html>
Output : 
- Press f5 and see the output.
 
 ![output.gif]()