View--------------------
@model MVCDemo.Models.Employee @*no need for Viewdata*@
<h2>Details</h2>
<fieldset>
<legend>Employee</legend>
@Html.Display("EmployeeData")
@* There are 3 way
@Html.Display("EmployeeData") <-- not strongly typed view
@Html.DisplayFor(model => model) <-- strongly typed view
@Html.DisplayForModel() <-- strongly typed view
*@
</fieldset>
=====================================
Controller-------------------
//for @Html.DisplayFor and @Html.DisplayForModel
//SampleDBContext db = new SampleDBContext();
//Employee employees = db.Employees.Single(x => x.Id == id);
//return View(employees);
//for @Html.Display
SampleDBContext db = new SampleDBContext();
Employee employees = db.Employees.Single(x => x.Id == id);
ViewData["EmployeeData"] = employees;
return View();
=======================================
Data-------------------------
Employee.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations; //for MetadataType
using System.Web.Mvc; //for HiddenInput
using System.ComponentModel; //for ReadOnly
namespace MVCDemo.Models
{
[MetadataType(typeof(EmployeeMetadata))]
[DisplayColumn("FullName")]
public partial class Employee
{
}
public class EmployeeMetadata
{
[DataType(DataType.Url)]
[UIHint("OpenWindow")] //using DisplayTmeplates
public string PersonalWebSite { get; set; }
[ReadOnly(true)] //or public string EmailAddress { get; }
[DataType(DataType.EmailAddress)]
public string EmailAddress { get; set; }
//[ScaffoldColumn(false)]
[HiddenInput(DisplayValue = false)]
public int Id { get; set; }
//only work with @Html.DisplayForModel()
[ScaffoldColumn(true)]
[DataType(DataType.Currency)]
//<globalization culture="en-us"/> <- web.config...inside system.web
public int? Salary { get; set; }
//[DisplayName("Full Name")]
//[DisplayAttribute(Name= "Full Name")]
[Display(Name = "Full Name")]
public string FullName { get; set; }
//[DisplayFormatAttribute(DataFormatString = "{0:d}")] //1/2/2007
//[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy HH:mm:ss}")] //1/2/2007 17:53:46
//[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy HH:mm:ss tt}")] //1/2/2007 17:53:46 PM
//[DataType(DataType.Time)] //5:53 PM
//[DataType(DataType.Date)] //1/2/2007
[DisplayFormat(DataFormatString = "{0:d}")] //1/2/2007
public DateTime? HireDate { get; set; }
[DisplayFormat(NullDisplayText="Gender not specified")]
public string Gender { get; set; }
}
}