В этом посте я покажу, какие типы представлений существуют в основных приложениях MVC Asp.net.

В ASP.NET Core представления являются важной частью архитектуры Модель-Представление-Контроллер (MVC). Представления отвечают за представление данных пользователю, и существует несколько типов представлений, используемых для достижения различных целей в веб-приложениях.

Вот некоторые распространенные типы представлений в ASP.NET Core:

  1. Razor Views:

Представления Razor — наиболее распространенный и широко используемый тип представления в ASP.NET Core. Они используют синтаксис Razor, который позволяет смешивать HTML-разметку с кодом C# для динамической генерации контента, который будет отправлен в браузер клиента. Представления Razor имеют расширение файла .cshtml. Вы можете использовать представления Razor для отрисовки HTML-шаблонов, создания форм и отображения данных.

Пример:

<!-- Razor View (.cshtml) -->
<h1>Welcome, @Model.Name!</h1>

2. Частичные просмотры:

Частичные представления — это повторно используемые компоненты в представлениях Razor. Они используются для разбиения сложных представлений на более мелкие, управляемые части. Частичные представления можно включать в другие представления с помощью вспомогательных методов @Html.Partial или @await Html.PartialAsync. Они полезны для создания модульных и легко поддерживаемых компонентов пользовательского интерфейса.

Пример:

<!-- Partial View (_UserProfile.cshtml) -->
<div>
    <h2>@Model.Name</h2>
    <p>@Model.Email</p>
</div>

3. Представления макета:

Представления макета определяют общую структуру и общие элементы веб-страницы, такие как верхние и нижние колонтитулы, меню навигации и таблицы стилей. Они используются для обеспечения единообразного внешнего вида на нескольких страницах вашего приложения. Представления макета обычно включают заполнители для отображения содержимого других представлений с помощью метода @RenderBody().

Пример:

<!-- Layout View (_Layout.cshtml) -->
<!DOCTYPE html>
<html>
<head>
    <!-- CSS and metadata here -->
</head>
<body>
    <header> <!-- Header content here --> </header>
    <div id="main-content">
        @RenderBody()
    </div>
    <footer> <!-- Footer content here --> </footer>
</body>
</html>

4. Просмотр компонентов:

Компоненты представления являются более мощными и гибкими, чем частичные представления. Это автономные компоненты, которые могут отображать сложные элементы пользовательского интерфейса и содержать как логику представления, так и данные. Компоненты представления обычно используются для динамических частей страницы, таких как боковая панель с последними сообщениями или сводка корзины покупок. Они вызываются с помощью вспомогательного метода @await Component.InvokeAsync.

Пример:

<!-- View Component Usage in Razor View -->
@await Component.InvokeAsync("ShoppingCart")

5. Страницы Razor:

Страницы Razor — это функция ASP.NET Core, которая позволяет создавать веб-страницы с собственной связанной логикой и разметкой в ​​одном файле. Хотя Razor Pages не является строго представлениями в смысле MVC, они объединяют аспекты представления и контроллера в один файл, что упрощает создание простых веб-страниц и форм.

Пример:

<!-- Razor Page (.cshtml) -->
@page
<h1>Welcome to My Page</h1>

Это основные типы представлений и концепции, связанные с представлениями, в ASP.NET Core. В зависимости от сложности и требований вашего веб-приложения вы можете выбрать подходящий тип представления для создания пользовательского интерфейса.

Справочная ссылка: https://dotnettutorials.net/lesson/views-asp-net-core-mvc/

Надеюсь, я дал вам базовое представление о представлениях в приложениях ASP.NET MVC. Если вам понравился этот пост, вам будет полезно немного похлопать его в ладоши 👏. Я всегда открыт для ваших вопросов и предложений. Вы можете поделиться этим в Facebook, Twitter, LinkedIn, чтобы кто-то из нуждающихся мог наткнуться на это.

Прочитайте другие мои статьи:

  1. Создайте веб-API ASP.NET Core и используйте Autofac для внедрения зависимостей

2. Сериализация и десериализация JSON в C#

Следуйте за мной в Твиттере: https://twitter.com/realkumar07

Спасибо за прочтение!