Для початківців базові поняття в mvc

Тепер перейдемо до створення проекту. Створювати ми буде базове додаток.

Запустіть Visual Studio, в меню виберіть "File" -> "New" -> "Project."

У відкритому вікні вибираємо зі списку Installed Templates "Web" (1). Далі вибираємо "ASP.NET MVC 3 Web Application" (2). Пишемо назву проекту і шлях до каталогу, де воно буде знаходитися (3)

Для початківців базові поняття в mvc

Тиснемо ОК. У наступному вікні залишаємо обраним "Internet Application" і тиснемо ОК

Для початківців базові поняття в mvc

У нас створитися базовий проект asp.net mvc. Після натискання клавіші F5 (Start Debugging), ми побачимо наш сайт (запуститися віртуальний IIS і на панелі Пуск з'явиться значок, які відображає його роботу). Кожен сайт запущений за допомогою Visaul Studio працює на якомусь порту (наприклад, localhost: 29663) з цього не хвилюйтеся, якщо цифри у Вас будуть відрізняться від моїх.

Що ж нам настворювала студія, і як працює asp.net mvc додаток.

Для початку потрібно зрозуміти просту логіку роботи всіх сайтів і то чим вони відрізняються від дескоп / windows додатків.

Сервер, в свою чергу, або знає цю команду (цей url) і віддає нам потрібну інфу, або повертає помилку (наприклад сторінку 404). Після того, як сервер команду виконав, він про нас запит забуває.

Коли ми на сайті тиснемо якусь кнопку, то в цілому це рівносильно відкриттю нової сторінки сайту новим користувачем. Сервер скоєно не пам'ятає, що він нам перед цим віддавав і хто ми. Тобто сервер працює за принципом: віддав-забув.

При подальшому розвитку інтернету почали вигадувати всілякі хитрощі, щоб сервер якось запам'ятовував з ким він працює і що б нам було легше нагадувати сервера, яку інфу ми до цього отримували (це я говорю про Cookie, Session і інші речі).

На замітку. Технологія asp.net forms прагнула до такого принципу: легко нагадувати сервера, які дії застосовувалися до цього клієнтом і яку інформацію клієнт вже отримав. Так з'явилося поняття ViewState - це збережена інформація стані сторінки. Але ця технологія була вдалою

Перейдемо тепер до того, як працює asp.net mvc технологія. (Зараз я опишу зовсім базові речі, багато кроків упущені для простоти).

Для початку відкрийте вікно "Solutin Explorer" в VS (якщо його немає, то його можна знайти в меню "View" -> "Solutin Explorer"). У ньому ми побачимо всі файли проекту. (Це вікно зручно розмістити праворуч, так як ми постійно будемо ним користуватися).

Для початківців базові поняття в mvc

Нас зараз цікавить папка Controllers - в ній ми створюємо файліки, які будуть обробляти наші дії (обробляти наші url). Так само нас цікавить файл Global.asax, в ньому ми задаватиме який файл з папки Controllers який url буде обробляти. Відкриємо файл Global.asax і знайдемо ось такий код:

public static void RegisterRoutes (RouteCollection routes)
routes.IgnoreRoute ( ". axd /");

Це правило прив'язки url до Controllers. Видалимо рядок з "routes.MapRoute." По ". UrlParameter.Optional>);" Замість неї ми напишемо свої три правила:

routes.MapRoute (
"Account-LogOn", // назва правила
"Account / LogOn.aspx", // який URL
new // який файл controller
);

Кожне правило має свою назву, яке не повинно повторюватися ( "Root" "Home-About" "Account-LogOn"). Так само кожне правило має вказувати URL і controller, який буде ця дія обробляти.

Зараз в моєму сайті є три сторінки / три правила:

- Account / LogOn.aspx - її буде обробляти контролер AccountController і метод цього контролера LogOn

- About.aspx - цю сторінку буде обробляти контролер HomeController і метод цього контролера About

- коренева стр - її буде обробляти контролер HomeController і метод цього контролера Index

Тепер відкриємо файл HomeController (для відкриття файлів користуйтеся "Solutin Explorer") в цьому файлі ви побачите клас HomeController, які успадковується від класу Controller і два методи цього класу Index і About. Ці методи і оброблятимуть наші url.

Основна логіка роботи програми пишеться в цих методах (наприклад зчитування або внесення інформації в базу даних). Давайте ми в методі Index вважаємо серверне час, а ось в методі About порахуємо скільки буде 345 помножити на 23.

public class HomeController. Controller
public ActionResult Index ()
var date = DateTime.Now;

public ActionResult About ()
var result = 345 * 23;
return View ();
>
>

Тепер нам потрібно результат свої дій відобразити користувачеві. У web додатках це робиться за допомогою html сторінок. Ці сторінки, як правило, знаходяться в папці View (користуйтеся "Solutin Explorer"). В папці View для кожного контролера створюється своя папка з назвою цього контролера (так легше орієнтуватися). Створимо кілька сторінок.

Правою клавішею натискаємо на папці "Home" в контекстному меню вибираємо "Add" -> "View."

Для початківців базові поняття в mvc

Перед нами відкриється вікно, в якому ми вкажемо ім'я нашій сторінці "ViewDateTime". Так само потрібно прибрати галочку "Use layout or master page", про неї ми поговоримо пізніше. Отже, вікно повинно мати вигляд:

Для початківців базові поняття в mvc

Тиснемо Add. Студія створить нам файл ViewDateTime.cshtml і створить в ньому базову структуру html. Таким же чином додамо ще файл ViewResult

Повернемося тепер до наших методів контролера. Змінимо рядок "return View ();" в методі Index на "return View ("

/Views/Home/ViewDateTime.cshtml ", date);" а в методі About на "return View ("

Це означає, що результат своїх дій ми будемо відображати на уявленнях (View) ViewDateTime і ViewResult відповідно, так само ми в ці уявлення передали date і result.

Що б спростити життя програмістам і не писати завжди довгий шлях ( "

/ Views / Home /. cshtml) до файлів відображення прийнято використовувати такі правила:

  • return View (); // означає, що файл відображення перебувати в папці з ім'ям контролера, а файл має теж назву що й метод. Приклад, для методу Index контролера HomeController уявлення буде перебувати "
/Views/Home/Index.cshtml "
  • return View ( "MyView"); // означає, що файл відображення перебувати в папці з ім'ям контролера, а файл має назву MyView. Приклад, для методу Index контролера HomeController уявлення буде знаходитися

    Виходячи з вище сказаного ще раз змінимо рядки коду: метод Index буде повертати return View ( "ViewDateTime", date); а метод About поверне return View ( "ViewResult", result);

    Тепер зверніть увагу, що крім вказівки View-файлу ми ще передаємо дані для відображення (date і result). Зараз нам потрібно налаштувати їх коректне відображення.

    Відкриємо файл ViewDateTime.cshtml і спочатку додамо код "@model DateTime". Він означає, що файл ViewDateTime буде відображати змінну типу DateTime. Якби ми не задавали, який тип зміною буде відображати дане подання, то код був би робочим, але тоді на цій сторінці у нас не було підказки. між тегами додамо код @ Model.ToShortDateString ().

    Використовуючи код @Model - ми звертаємося до об'єкту, який передали в View. Повний код файлу ViewDateTime.cshtml

    @model DateTime
    @ Layout = null;
    >



    ViewDateTime



    @ Model.ToShortDateString ()


    Тепер відкриємо файл ViewResult.cshtml. На початку файлу додайте "@model int"

    між тегами напишіть код "345 * 23 = @Model" Повний текст виглядає так:



    ViewResult



    345 * 23 = @Model



    Тепер запустіть свій додаток (клавіша F5). Ви побачите поточну дату

    Схожі статті