Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота 2_14.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
805 Кб
Скачать
☆

Створення контролера і представлень

Оскільки з моделями ми закінчили, перейдемо до найбільш важливої ​​частини програми - до контролера. Для контролерів у нас вже є папка Controllers. Натисніть на неї правою кнопкою миші і в меню виберіть Add- > Controller .... Перед вами з'явиться діалогове вікно створення нового контролера. Пізніше ми детально поговоримо про параметри створення контролерів та й про самі контролери, а поки встановіть в якості імені контролера HomeController і натисніть Add (Додати)

У вас буде створений наступний контролер:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

namespace MvcCreditApp.Controllers

{

public class HomeController : Controller

{

//

// GET: /Home/

public ActionResult Index()

{

return View();

}

}

}

Контролер по суті і є головна ланка додатка, яка пов'язує модель та інтерфейс користувача. Зверніть увагу, що контролер - це звичайний клас, який наслідується від базового класу Controller. Він поки має єдиний метод Index, який повертає деякий результат методу View ( ) - майбутнє представлення. І якщо ми зараз запустимо додаток, то отримаємо помилку про те, що представлення для даної дії не визначено. Але перед тим як додати представлення і приступити до створення користувальницького інтерфейсу змінимо метод Index наступним чином:

Насамперед, зверніть увагу, що так як у нас моделі знаходяться в іншому просторі імен, хоча і в одному проекті, то ми їх повинні імпортувати. Потім ми створюємо контекст даних. Використовуючи метод Credits, ми отримуємо з бази даних список об'єктів Credit.

Далі ми створюємо об'єкт Credits в об'єкті ViewBag і присвоюємо йому цей список. Об'єкт ViewBag є таким об'єктом, який передається в представлення. І ми можемо визначити в цьому об'єкті будь-яку змінну і передати їй деяке значення, а потім у представленні витягти це значення.

А тепер створимо саме представлення. Наведемо курсор на метод Index і натиснемо правою кнопкою миші. Нам відобразиться меню, в якому виберемо Add View ....

Потім нам відкриється вікно додавання представлення, де нам буде запропоновано вибрати ім'я представлення і ще ряд параметрів. Оскільки у нас ще немає майстер- сторінок у проекті, знімемо галочку з прапорця Use a layout or masterpage: і натиснемо Add.

Пізніше ми детальніше поговоримо про опції створення і взагалі про представлення. А поки Visual Studio автоматично відкриє створене представлення Index.cshtml. По суті воно порожнє і містить мінімальний код розмітки на мові html. Змінимо його наступним чином:

@{

Layout = null;

}

<!DOCTYPE html>

<html>

<head>

<meta name="viewport" content="width=device-width" />

<title>Index</title>

</head>

<body>

<div>

<h3>Програми кредитування</h3>

<table>

<tr><td><p>Тип кредиту</p></td><td><p>Період кредитування</p></td><td><p>Максимальна сума</p></td><td><p>Ставка %</p></td></tr>

@foreach (var c in ViewBag.Credits)

{

<tr><td><p>@c.Head</p></td><td><p>@c.Period</p></td><td><p>@c.Sum</p></td><td><p>@c.Procent %</p></td></tr>

}

</table>

<a href="/Home/CreateBid">Подати заявку на отримання кредиту</a>

</div>

</body>

</html>

Тут ми створюємо таблицю, в якій будуть розташовуватися наші дані про програми кредитування. Особливий інтерес представляє конструкція @foreach (var c in ViewBag.Credits ). Ця конструкція використовує синтаксис движка представлення Razor (а саме його ми вибрали при створенні представлення). Докладніше по движку Razor пізніше, а поки вам треба знати, що після символу @ згідно синтаксису ми можемо використовувати вирази коду мовою C # / VB.NET .

У циклі ми пробігаємо по елементам в об'єкті ViewBag.Credits, який ми раніше створили в методі контролера. І потім отримуємо властивості кожного елемента і поміщаємо його в комірку таблиці.

Посилання в кінці –

<a href="/Home/CreateBid">Подати заявку на отримання кредиту</a>

буде означати адресу, за якою буде розміщуватися форма заявки на кредит.