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

Оскільки з моделями ми закінчили, перейдемо до найбільш важливої ​​частини програми - до контролера. Для контролерів у нас вже є папка 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>

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

Основи маршрутизації

Щоб викликати контролер HomeController або відправити йому запит, нам треба вказати в рядку запиту його ім'я - Home. Крім того, після імені контролера нам треба через слеш вказати дію або метод контролера, до якого відправляється запит. За замовчуванням при запуску проекту або при зверненні до сайту система mvc викликатиме дію Index контролера HomeController, якщо ми не вкажемо інший маршрут за замовчуванням в параметрах маршрутизації. Шлях /Home/CreateBid означає, що ми будемо звертатися до методу CreateBid контролера HomeController. Але перед тим як створити цей метод, наповнимо додаток даними.

Наши рекомендации