dir.by  
  Поиск  
Компьютер, программы
ASP.NET MVC (web сайт на архитектуре Model-View-Controller)
 Создаем новое приложение ASP.NET MVC 
посмотрели 12173 раз
обновлено: 18 мая 2020
Скачать пример: MyAspNetWebApplication.zip ...
План (6 шагов)
Шаг 1. Открываем Visual Studio
Если у вас не установлена Visual Studio нужно установить Visual Studio...
Открываем Visual Studio 2022
или
Открываем Visual Studio 2019
Шаг 2. Создаем пустое ASP.NET MVC приложение
Нажимаем в меню: FileNewProjectVisual 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 нажимаем правой клавишей мыши на
ControllersAddController
Назовите контроллер 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
  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>
Открываем Index.cshtml это в папке Views/Home и пишем "Hello! World!!!"
Шаг 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>
Скачать пример
 
← Предыдущая тема
Что такое MVC в ASP.NET ?
 
Следующая тема →
Передаем данные из контроллера в представление в ASP.NET MVC. Используем ViewBag, ViewData, TempData, Model (строго типизированное представление)
 
Ваши Отзывы ... комментарии ...
   
Вашe имя
Ваш комментарий (www ссылки может добавлять только залогиненный пользователь)

 
Что такое MVC в ASP.NET ?
Создаем новое приложение ASP.NET MVC
Контроллер (Controller)
Передаем данные из контроллера в представление в ASP.NET MVC. Используем ViewBag, ViewData, TempData, Model (строго типизированное представление)
Представление (View)
Что такое View (представление) и операторы Razor в ASP.NET MVC
Создаем переменную и выводим на экран во View в ASP.NET MVC
@using внутри View в ASP.NET MVC
@foreach(var item in arr) {...} внутри View в ASP.NET MVC
@DateTime.Now внутри View в ASP.NET MVC
Как узнать имя контроллера внутри View в ASP.NET MVC
Отображаем [DateTime | только Date | только Time] в нужном формате в ASP.NET MVC
Разновидности представлений (View)
Строго типизированное представление (Strongly-typed-view) в ASP.NET MVC
...
Мастер представление (Master View) с использованием @RenderBody() в ASP.NET MVC
Мастер представление (Master View) с использованием @RenderBody() и дополнительных секций @RenderSection в ASP.NET MVC
...
Частичное представление (Partial View) в ASP.NET MVC. Встраиваем частичное представление @Html.Partial("My1") и @{ Html.RenderPartial("My1");}
При нажатии submit внутри partial view происходит ajax вызов метода controller. Метод controller должен возвращать PartialView(model) | ASP.NET MVC
...
Строго типизированное частичное представление (Strongly-typed partial view) в ASP.NET MVC
Создаем папку ViewModels. Это хороший стиль программирования для передачи данных из Controller во View
Создаем папку ViewModels. Создаем свой класс в папке ViewModels. Это хороший стиль программирования для передачи данных из Controller во View. Web приложение ASP.NET MVC
Атрибуты. Используем атрибуты во ViewModels(чтобы показать кнопки, combo в представлении). Используем атрибуты в Controller (чтобы улучшить методы)
Аттрибут [Display(Name = "...")] описывается в C# классе и используется в @Html.LabelFor, @Html.DisplayNameFor в ASP.NET MVC
Аттрибут [Required(ErrorMessage = "Пожалуйста, введите название")] описывается для свойства в C# классе и требует чтобы свойство было заполнено, если не заполнено на экране ошибка ErrorMessage в ASP.NET MVC
Аттрибут [Remote("IsValidAuthor", "Home", ErrorMessage = "Enter correct author of book")] описывается для свойства в C# классе и проверяет это свойство на правильность на сервере через метод IsValidAuthor в conroller Home, если метод возвращает false, то на экране будет ошибка ErrorMessage в ASP.NET MVC
Аттрибут [HiddenInput(DisplayValue = false)] описывается в C# классе и используется в @Html.HiddenFor в ASP.NET MVC
Маршрутизация
Ссылки и перенаправления в представлении
@Html.ActionLink внутри View в ASP.NET MVC
@Html.RouteLink внутри View в ASP.NET MVC
@Url.Action внутри View в ASP.NET MVC
@Url.RouteUrl внутри View в ASP.NET MVC
@Url.Content внутри View в ASP.NET MVC
Bootstrap в MVC
Добавляем и подключаем Bootstrap (css, js файлы) в ASP.NET MVC проект
JQuery в МVС
Подключаем JQuery в ASP.NET MVC проект
С помощью JQuery получаем содержимое View (представления) в ASP.NET MVC. Пример: $.get("/Home/Index", function (data) {...}) ...
Класс AjaxExtensions в МVС (асинхронное получение данных)
Подключаем jQuery & AJAX в ASP.NET MVC проект
С помощью Ajax.ActionLink получаем содержимое View (представления) и вставляем в div в ASP.NET MVC
Объект Ajax (это класс AjaxExtensions) в ASP.NET МVС
База данных (Entity Framework) в ASP.NET MVC
Entity Framework в приложении ASP.NET MVC. Используем Code First (пишем c# код, а таблицы в базе данных создаются сами)
Аутентификация (login/register/logout)
Что такое аутентификация (login/register/logout) в ASP.NET MVC ?
Пример: Аутентификация (login/register/logout) в ASP.NET MVC используя аутентификацию форм FormsAuthentication.SetAuthCookie(model.Name, true);
Авторизация (admin/user/...)
Что такое авторизация (admin/user/...) в ASP.NET MVC ?
Пример: Авторизация (admin/user/...) в ASP.NET MVC используя провайдер ролей RoleProvider
Пишем приложение "Планирование дел, задач" в ASP.NET MVC
Создаем пустое приложение "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Добавляем библиотеки Bootstrap & jQuery в приложение "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Создаем мастер-представление (главное меню & логин кнопки используя Bootstrap) в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Добавляем контроллер "Home" и представление "Index" (главная страница в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Добавляем библиотеку Entity Framework и создаем соединиение с Базой данных в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Аутентификация (login/register/logout) в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Добавляем класс "Task" для сохранения дел, задач в базу данных в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Добавление nUnit в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Дополнительные темы, вопросы
Чем ASP.NET MVC лучше ASP.NET Web Forms ?
Выбор между ASP.NET Core и ASP.NET ?
Как выбрать интернет браузер чтобы в нем запускался .NET проект
Как узнать локальный адрес и порт вашего ASP.NET MVC приложения ?
Scriptsindex.d.ts(8,1): error TS1008: Build:Unexpected token; "module, class, interface, enum, import or statement" expected. Scriptsindex.d.ts(8,13): error TS1005: Build:";" expected. в Visual Studio 2017 в приложении ASP.NET MVC
Error "unable to connect to web server "iis express" | ASP.NET MVC | Visual Studio 2017
Error "This site can"t be reached" when run ASP.NET application | Solution: Recreate the Self-Signed HTTPS Certificate for localhost in IIS Express
WWW сайты для изучения ASP.NET MVC
Cайты для изучения ASP.NET MVC

  Ваши вопросы присылайте по почте: info@dir.by