Яка різниця між ViewData та ViewBag на сторінках Razor?

Властивість ViewData — це словник слабко типізованих об’єктів. Властивість ViewBag є оболонкою для ViewData, яка надає динамічні властивості для основної колекції ViewData.3 червня 2022 р

ViewData: об’єкт словника для передачі даних у вигляді пар ключ-значення. Він надрукований вільно, вимагає приведення в поданні та не має перевірки під час компіляції. ViewBag: Подібно до ViewData, він забезпечує динамічний доступ до властивостей. Він також надрукований вільно і не має перевірки під час компіляції.

Загалом ViewBag є спосіб передачі даних від контролера до представлення. Це об’єкт типу та динамічна властивість у базовому класі контролера. Порівняно з ViewData, він працює подібно, але відомо, що він трохи повільніший і був представлений у ASP.NET MVC 3.0 (ViewData був представлений у MVC 1.0).

Робота з ViewData на сторінках Razor. ViewData є контейнер для даних, які передаються від PageModel до сторінки вмісту. ViewData — це словник об’єктів із ключем на основі рядка. Ви додаєте елементи до ViewData таким чином: public class IndexModel : PageModel.

У Razor Pages можна використовувати властивість ViewData щоб передати дані з моделі сторінки на відповідну сторінку перегляду, а також поділитися ними з макетом і будь-якими частковими переглядами. ViewData — це словник, який може містити пари ключ-значення, де кожен ключ має бути рядком.

Якщо дані складні, вони потребують приведення типів. Крім того, щоб уникнути помилки для складних даних, нам потрібно перевірити повне нульове значення. ViewData швидше, ніж ViewBag.

Оцініть статтю