Setting up an ASP.NET Core MVC website
ASP.NET Core Razor Pages are great for simple websites. For more complex websites, it would be better to have a more formal structure to manage that complexity.
This is where the Model-View-Controller (MVC) design pattern is useful. It uses technologies similar to Razor Pages, but allows a cleaner separation between technical concerns, as shown in the following list:
- Models: Classes that represent the data entities and view models used in 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 code usually creates a view model that may contain entity models and passes it to a view to generate an HTTP response to send back to the web browser or other client.
The best way to understand MVC is...