Создаем новое приложение ASP.NET MVC
last updated: 18 May 2020
План (6 шагов)
Шаг 1. Открываем Visual Studio
Шаг 2. Создаем пустое ASP.NET MVC приложение
Нажимаем в меню: File → New → Project → Visual C# → ASP.NET Web Application
Нажимаем OK
Проект ASP.NET MVC создался!
Запускаем проект
Нажимаем вверху на зеленый треугольник
Ошибка!
Чтобы проект запустился нужно чтобы в проекте были:
• один или больше Controller
• один или больше View
После создания нового проекта Controller и View отсутствуют.
Controller и View сейчас создадим.
Шаг 3. Добавляем первый Controller
В архитектуре
ASP.NET MVC входящие запросы обрабатываются
контроллерами .
Контроллер это обычный
C# класс (как правило, наследуются от
System.Web.Mvc.Controller , базовый класс контроллеров).
В
ASP.NET MVC контроллеры находятся в папке под названием
Controllers , которую
Visual Studio создала для нас при создании проекта.
Чтобы добавить контроллер в наш проект в окне
Solution Explorer нажимаем правой клавишей мыши на
Controllers →
Add →
Controller
Назовите контроллер HomeController
В ASP.NET MVC есть соглашение 1:
Имена, которые мы даем контроллерам, должны заканчиваться словом Controller
Нажимаем Add и будет создан HomeController.cs
У нас добавился Controller
Теперь если нажимем вверху на зеленый треугольник т.е. запустим приложение
На экране увидим ошибку
Ошибка! Потому что наш Contoller пытается найти View (представление) и не находит.
Это сообщение об ошибке очень полезно.
В сообщении указано, что ASP.NET MVC не смог найти View (представление) для нашего метода , а также показано, где искал.
В ASP.NET MVC есть соглашение 2:
View (представление) связано с методом в Controller при помощи имени .
То есть
название класса View
должно совпадать с
названием метода в Controller
На заметку! В словесной терминалогии метод в Controller называется метод действия
Наш Controller называется Home ,
Наш метод действия называется Index
C#
Вспомним наш контроллер файл HomeController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace WebApplication2.Controllers
{
public class HomeController : Controller
{
public ActionResult Index ()
{
return View();
}
}
}
Объяснение!
Наш класс называется HomeController поэтому мыслено убираем слово Controller и получаем что наш контроллер называется Home
Внутри нашего класса HomeController есть метод Index это и есть название метода действия
Шаг 4. Добавляем первое View
Нажимаем правой клавишей мыши по методу Index в файле HomeController.cs и нажимаем на Add View ...
Снимем галочку [ ] Use a layout or master page .
Нажимаем Add
Visual Studio в папке Views/Home создал новый файл Index.cshtml
Видим что файл содержит
стандартный HTML . Исключение составляет лишь код:
@{
Layout = null;
}
Данное выражение будет дополнительно разобрано
движком Razor .
Шаг 5. Добавляем текст "Hello! World!!!" во View
Открываем Index.cshtml это в папке Views/Home и пишем "Hello! World!!!"
Html
Файл Index.cshtml
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title> Index</title>
</head>
<body>
<div>
Hello! World!!!
</div>
</body>
</html>
Шаг 6. Запускаем ASP.NET MVC приложение
Нажимаем вверху на зеленый треугольник
Откроется страница в браузере и мы увидим текст "Hello World!!!"
Итог
Вы заметили, что пример запустился с адресом: localhost:1764/Home/Index
localhost:1764
Это имя сервера и порт
localhost это локальный компьютер
1764 это номер порта
Home
Это класс контроллера, который по полному называется HomeController
Index
Это название метода контроллера
C#
Наш контроллер файл HomeController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace WebApplication2.Controllers
{
public class HomeController : Controller
{
public ActionResult Index ()
{
return View() ;
}
}
}
return View вызовет Views/Home /Index .cshtml файл
То есть метод контроллера вызовет соответствующее View (представление)
Вот наше представление (в виде html файла)
Html
Views/Home/Index.cshtml
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title> Index</title>
</head>
<body>
<div>
Hello! World!!!
</div>
</body>
</html>
Скачать пример