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