Setting up an ASP.NET Core MVC website
The Model-View-Controller (MVC) design pattern allows a clean separation between technical concerns, as shown in the following list:
- Models: Classes that represent the data entities and view models used on the website.
- Views: Razor files, that is,
.cshtml
files, that render data in view models into HTML web pages. Blazor uses the.razor
file extension, but do not confuse them with Razor files! - Controllers: Classes that execute code when an HTTP request arrives at the web server. The controller methods usually create a view model that may contain entity models and pass it to a view to generate an HTTP response to send back to the web browser or other client.
ASP.NET Core has many Razor file types, which can be confusing because they all use the term “Razor”, so I will now remind you of them and highlight the important similarities and differences, as shown in Table 14.1: