MVC is one of three ASP.NET programming models. MVC is a framework for building web applications using a MVC (Model View Controller) design: The Model represents the application core (for instance a list of database records). The View displays the data (the database records).
Model: Model represents the application data domain. In short the applications business logic is contained with in the model.
View: Views represent the user interface, with which the end users interact. In short the all the user interface logic is contained with in the UI.
Controller: Controller is the component that responds to user actions. Based on the user actions, the respective controller, work with the model, and selects a view to render that displays the user interface. The user input logic is contained with in the controller.
Difference between MVC2, MVC3 and MVC4
View Engine :View Engine is responsible for rendering of the HTML code from your views to the browser.
Syntex :
ViewBag was added in the C# 4.0 which uses the dynamic feature that allows to add properties of an object dynamically . We can say that ViewBag = ViewData + dynamic feature around the ViewData dictionary.
Jquery Support :
Layout Support :
Validation :
Model: Model represents the application data domain. In short the applications business logic is contained with in the model.
View: Views represent the user interface, with which the end users interact. In short the all the user interface logic is contained with in the UI.
Controller: Controller is the component that responds to user actions. Based on the user actions, the respective controller, work with the model, and selects a view to render that displays the user interface. The user input logic is contained with in the controller.
Difference between MVC2, MVC3 and MVC4
View Engine :View Engine is responsible for rendering of the HTML code from your views to the browser.
- MVC 2 uses only Web Forms view engine (.aspx) as a default View Engine.
- MVC3 uses Razor View Engine (.cshtml for c# and .vbhtml for Visual Basic) and Web Forms view engine (.aspx).
- MVC4 also uses Razor View Engine as a default view engine with some new features like condition attribute and ‘Tilde slash’.
- Chart, WebGrid, Crypto,WebImage, WebMail Controls :
- All these are not available in MVC2.
- All these are available in MVC3 and in MVC4.
Syntex :
- (HTML Syntax) Web Forms view engine syntax: <%=Html code %> in MVC2.
- (Razor Syntax) Razor View Engine syntax: @Html code in MVC3.
- MVC4 has the same Razor View Engine Syntax but with the addition of new features like conditional attribute and ‘Tilde Slash’ i.e. URL resolution.
- Objects available for sharing of data between View and Controller :
- TempData, ViewData are available in MVC2.
- TempData, ViewData ,ViewBag are available in MVC3.
- TempData, ViewData ,ViewBag are available in MVC4.> TempData is used with current and subsequent request i.e. when you know the next view to be redirected.
- > In ViewData, dictionary of objects are accessible via strings as keys.
ViewBag was added in the C# 4.0 which uses the dynamic feature that allows to add properties of an object dynamically . We can say that ViewBag = ViewData + dynamic feature around the ViewData dictionary.
Jquery Support :
- Jquery support is Good in MVC2.
- Jquery support is Better in MVC3.
- MVC4 provides better support for Jquery like Jquery Mobile.
- Dependency Injection Support :
- Dependency injection is Good in MVC2.
- It provides powerful hooks with Dependency Injection and Global Action Filters in MVC3.
- Better support in MVC4.
Layout Support :
- Supports only Master Page in MVC2.
- Supports not only Master Page but also Layout Page in MVC 3 and in MVC4.
Validation :
- Client-side Validation and Asynchronous controllers is there in MVC2.
- Unobtrusive Ajax and Client side Validation, Jquery Validation and JSON binding support is in MVC3.
- Client side validation, Jquery validation and enhanced support for asynchronous methods in MVC4.
- Project Templates :
- MVC3 supports project templates enabled by HTML 5.
- MVC4 supports many new features for mobile apps and also provides new mobile project template and default templates are refreshed and modernized.