1. ViewBag or ViewData
2. Dynamic type
3. Strongly typed view
- advantages - Intellisense
- Compile-time error checking
==================
1. ViewBag
in Controller page
public ActionResult Details(int id)
{
SampleDBContext db = new SampleDBContext();
Employee enployee = db.Employees.Single( x => x.Id == id);
ViewBag.EmployeeData = employee;
return View();
}
--------------------
in View page
<div class="display-label">
@Html.DisplayName("FullName")
</div>
<div class="display-field">
@ViewBag.EmployeeData.FullName
</div>
<div class="display-label">
@Html.DisplayName("Gender")
</div>
<div class="display-field">
@ViewBag.EmployeeData.Gender
</div>
==============================================
2. Dynamic type
in Controller page
public ActionResult Details(int id)
{
SampleDBContext db = new SampleDBContext();
Employee enployee = db.Employees.Single( x => x.Id == id);
return View(enployee );
}
--------------------
in View page
@model dynamic
<div class="display-label">
@Html.DisplayName("FullName")
</div>
<div class="display-field">
@Model.FullName
</div>
<div class="display-label">
@Html.DisplayName("Gender")
</div>
<div class="display-field">
@Model.Gender
</div>
==============================================
3. Strongly typed view
in Controller page
public ActionResult Details(int id)
{
SampleDBContext db = new SampleDBContext();
Employee enployee = db.Employees.Single( x => x.Id == id);
return View(enployee );
}
--------------------
in View page
@model MVCDemo.Models.Employee
<div class="display-label">
@Html.DisplayName("FullName")
</div>
<div class="display-field">
@Model.FullName
</div>
<div class="display-label">
@Html.DisplayName("Gender")
</div>
<div class="display-field">
@Model.Gender
</div>