ASP.NET MVC is open source web application framework. MVC itself is a design pattern which is built around three main components: model-view-controller.
Model - Models reflect your business objects, and are a means to pass data between Controllers and Views.
View - Views are the pages that render and display the model data to the user. ASP.NET MVC Views are typically written using Razor syntax.
Controller - Controllers handle incoming HTTP requests from a client, and usually return one or more Models to an appropriate View.
The ASP.NET MVC features:
Simple MVC application
We are going to create simple MVC application which displays person details. Create new MVC project using Visual Studio. Add new model named Person to Models folder as following:
public class Person
{
public string Surname { get; set; }
public string FirstName { get; set; }
public string Patronymic { get; set; }
public DateTime BirthDate { get; set; }
}
Add new controller to Controllers folder:
public class HomeController : Controller
{
//Action Method
public ActionResult Index()
{
// Initialize model
Person person = new Person
{
Surname = "Person_SURNAME",
FirstName = "Person_FIRSTNAME",
Patronymic = "Person_PATRONYMIC",
BirthDate = new DateTime(1990, 1, 1)
};
// Send model to View for displaying to user
return View(person);
}
}
Finally add View to /Views/Home/ folder named Index.cshtml:
@* Model for this view is Person *@
@model Hello_MVC.Models.Person
<h2>Hello @Model.FirstName !</h2>
<div>
<h5>Details:</h5>
<div>
@Html.LabelFor(m => m.Surname)
@Html.DisplayFor(m => m.Surname)
</div>
<div>
@Html.LabelFor(m => m.FirstName)
@Html.DisplayFor(m => m.FirstName)
</div>
<div>
@Html.LabelFor(m => m.Patronymic)
@Html.DisplayFor(m => m.Patronymic)
</div>
<div>
@Html.LabelFor(m => m.BirthDate)
@Html.DisplayFor(m => m.BirthDate)
</div>
</div>