background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Intro to ASP.NET Core Razor Pages - From Start to Published"

input logo icon
"videoThumbnail Intro to ASP.NET Core Razor Pages - From Start to Published
Оглавление
|

Оглавление

0:00
Intro
1:34
Creating demo ASP .NET Core Web app
4:35
Demo app launching and overview
7:53
Layout and index pages explained
9:27
ASP. NET and bootstrap
15:20
Root folder
18:00
Razor pages explained
25:17
Page View Model
27:56
Properties and Data in page view model
33:25
Page paths
37:08
Web form, Data Model and Data Post
53:21
Note on Data Access
57:13
Publish Razor Pages app in Azure
1:14:08
Summary and concluding remarks
Теги видео
|

Теги видео

.net
C#
Visual Studio
code
programming
tutorial
course
training
how to
tim corey
C# course
C# training
C# tutorial
timco
asp.net
.net core
asp.net mvc
dependency injection
asp.net core 3.0
asp.net core
razor pages
asp.net core web application
.net core 3.0
mvc
blazor
c# web app
azure web app
azure website
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:00
asp.net core — это веб-сайт
00:00:03
разработки dotnet cord под этим эгидой,
00:00:06
четыре основных компонента — razorpages blazer —
00:00:11
MVC и API — все эти типы проектов могут
00:00:16
без проблем сосуществовать на одном веб-сайте,
00:00:19
однако в этом видео они все играют разную
00:00:21
роль. Мы рассмотрим
00:00:24
Razor Page, самый быстрый и простой способ
00:00:27
создания мощных серверных веб-
00:00:30
приложений в c-sharp. Прежде чем продолжить, мы рассмотрим,
00:00:33
как настроить проект, как собирать
00:00:35
и отображать данные и как их развернуть.
00:00:38
Хочу
00:00:41
отметить, что в описании
00:00:43
есть ссылки для получения исходного кода
00:00:44
этого видео, ссылка на список рассылки научной фантастики
00:00:47
и ссылка для регистрации на моей
00:00:49
странице Patreon. Там вы также найдете ссылки на курсы
00:00:52
с дополнительной информацией. по
00:00:54
темам, которые мы рассматриваем сегодня, на случай, если вы захотите
00:00:56
углубиться сейчас, если вы еще не
00:00:59
встречали меня раньше, меня зовут Тим
00:01:01
Кэрри, и моя цель — облегчить изучение
00:01:03
до-диез, один из способов, которым я это делаю, —
00:01:06
преподавание контекст есть живые
00:01:09
обучающие программы, они научат вас,
00:01:11
что делать, я делаю еще несколько шагов, чтобы
00:01:14
показать вам, когда это делать,
00:01:16
почему вам следует или не следует это делать, каких
00:01:19
ошибок следует избегать и какие
00:01:21
в основном лучшие практики я получаю вы в восторге от
00:01:24
реального мира, если вам
00:01:26
интересен именно такой тип обучения, подпишитесь
00:01:29
на мой канал и нажмите
00:01:30
значок колокольчика, чтобы получить уведомление, когда я выпущу новые
00:01:32
видео. Теперь давайте перейдем в визуальную студию,
00:01:36
где я создам новый проект и буду
00:01:40
создавать основное веб-приложение asp.net,
00:01:44
и это зонтичный проект, который
00:01:46
затем расширяется до нескольких
00:01:50
разных типов, поэтому давайте нажмем дальше и
00:01:52
скажем, что это пользовательский интерфейс Razor Pages
00:01:57
и демонстрация Razor Pages для
00:02:03
имени проекта и имени решения. соответственно и
00:02:05
создайте, но прежде чем он действительно создаст его,
00:02:08
он попросит вас предоставить еще несколько фрагментов
00:02:11
данных. Прежде всего мы собираемся
00:02:13
выбрать dotnet
00:02:14
core asp.net core 3.0, чтобы в качестве видео
00:02:19
своевременная запись этого видео
00:02:22
была последней выпущен фреймворк, есть версия
00:02:24
3.1, которая находится в предварительной версии, но я выбираю
00:02:28
3.0. Я выберу веб-приложение,
00:02:31
веб-приложение использует бритвенные страницы. Теперь я
00:02:37
сказал, что эти разные типы могут
00:02:40
сосуществовать в одном проекте, а это означает,
00:02:44
что даже если я выберу MVC проект,
00:02:48
в котором могут быть лучи или страницы, и если
00:02:53
я выберу веб-приложение, я все равно могу
00:02:55
поместить MVC в точку доступа. Внутри него могут быть как MVC, так и
00:03:00
Razor-страницы, хорошо, поэтому мы
00:03:03
выберем веб-приложение, хотя
00:03:05
оно выходит из окно
00:03:08
с настройкой Razor Pages, это самый
00:03:11
простой способ начать работу с Razor
00:03:13
Pages. Теперь я не собираюсь выбирать
00:03:16
аутентификацию для этого видео только
00:03:19
потому, что это добавляет уровень сложности,
00:03:21
который, я не думаю, необходим для того, что
00:03:23
мы делаем, я собираюсь настроить HTTP
00:03:28
убедитесь, что установлен флажок, который
00:03:29
всегда должен быть установлен. Это позволит
00:03:33
вам использовать SSL в разработке и обеспечить
00:03:37
соблюдение SSL в производстве, и
00:03:41
это действительно хорошо, что Google
00:03:46
больше понизит версию вашего веб-сайта, если у вас нет Версия SSL,
00:03:50
и я считаю, что версия SSL включена
00:03:52
по умолчанию,
00:03:53
хорошо, поэтому они начинают
00:03:54
бороться с этим и действительно подталкивают вас
00:03:56
к созданию защищенного веб-сайта, даже
00:04:00
если я бы назвал стандартное веб-
00:04:02
приложение, поэтому убедитесь, что у вас установлен этот
00:04:05
флажок, мы мы не собираемся включать
00:04:08
поддержку Docker, мы оставим
00:04:10
поддержку Docker в покое, нажмем «Создать», и
00:04:15
это будет своего рода каркасом
00:04:16
для нас базового проекта, который выполняется довольно
00:04:19
быстро, теперь он находится на заднем плане
00:04:21
здесь, внизу слева- угол руки
00:04:23
восстанавливает или завершает восстановление, и если мы
00:04:26
выполним сборку здесь, она на самом деле
00:04:28
удалит необходимые нам пакеты нуги, поэтому на
00:04:30
самом деле он удаляет
00:04:31
пакеты NuGet, и теперь все завершено, так что это
00:04:35
наш базовый шаблон, хорошо, прочитайте коробку,
00:04:38
чистую и свежую. вот что мы получим, если
00:04:41
начнем это, на самом деле у нас есть два
00:04:44
варианта: Express и пользовательский интерфейс Razor Pages, в
00:04:48
чем разница, я выражаю,
00:04:51
означает, что мы запускаем наш веб-сайт, используя то, что
00:04:56
по сути является IAS или
00:04:59
информационными системами Интернета или сервером, это то, что
00:05:02
вы бы развернули, если бы вы мы собираемся
00:05:05
развертывать в Windows, поэтому оно будет
00:05:08
очень близко имитировать то, что вы получите в
00:05:10
реальной среде веб-сервера, и это здорово,
00:05:15
но есть еще один, еще лучший вариант,
00:05:18
и это тот, который идет после
00:05:20
названия нашего проекта, поэтому пользовательский интерфейс Razor Pages — это
00:05:22
наш имя проекта, оно также указано здесь
00:05:25
как опция для запуска пользовательского интерфейса страниц бритвы,
00:05:28
что означает, что когда я использую то, что называется
00:05:31
Kestrel, а Kestrel - это
00:05:37
веб-сервер командной строки, поэтому, когда мы запускаем это, то, что
00:05:42
произойдет за кулисами, запустит
00:05:44
окно консоли, и оно будет запущено. запустить
00:05:47
наше веб-приложение из этого
00:05:49
окна консоли, одно из преимуществ этого
00:05:52
заключается в том, что мы можем точно видеть, что происходит с нашим веб-сервером,
00:05:55
и с нашего веб-сервера мы видим весь
00:05:58
трафик, что происходит, какие
00:06:00
команды отклоняются, что
00:06:03
мы пропустили, какие ошибки были теперь вся
00:06:05
эта информация передается через эту
00:06:07
командную строку, если вы выберете «
00:06:10
Экспресс», вы не увидите это командное
00:06:12
окно, но оно синего цвета.
00:06:17
Окно вывода. У меня здесь есть эти окна,
00:06:18
компьютеры, их так много, но, по крайней мере,
00:06:20
вывод окно покажет вам те
00:06:22
же самые команды. Я выберу Kestrel,
00:06:25
где я запущу это, просто чтобы посмотреть, как
00:06:28
это выглядит. Хорошо, вот это
00:06:31
консольное приложение запускается, и теперь у нас
00:06:35
загружен наш веб-сайт, так что обратите внимание,
00:06:39
здесь написано, что мы: у меня есть 200, что означает
00:06:42
успешную выгрузку значка, и здесь у
00:06:48
нас есть двести четыре приложения
00:06:50
JavaScript, еще двести четыре
00:06:53
JavaScript, и для CSS эти двести
00:06:56
сообщений означают сообщение об успешном
00:07:00
вызове http, хорошо,
00:07:03
поэтому мы вызываем и пытаемся
00:07:05
в этом случае встать здесь файл здесь вверху
00:07:08
это файл JavaScript или CSS, мы
00:07:11
получаем эти файлы, и они
00:07:12
успешно удаляются,
00:07:13
если я нажимаю уведомление о конфиденциальности, мы получаем
00:07:17
еще пару сообщений, которые появляются,
00:07:19
включая три Oh Force ОК, мы
00:07:22
получаем сообщения и видим, что
00:07:23
происходит, поэтому есть возможность просмотра, чтобы коснуться
00:07:27
индекса, ну, двести сообщений, чтобы мы
00:07:30
видели все эти разные вещи, поступающие
00:07:31
по сети, это может быть очень-очень
00:07:33
полезно для отладки, я просто хочу
00:07:35
отметить это правильно вперед, сейчас я
00:07:38
немного увеличил масштаб, у меня один
00:07:40
двадцать пять процентов, но это
00:07:43
стандартный вид готового к использованию
00:07:45
никогда не настраиваемого пользовательского интерфейса Razor Pages,
00:07:49
окей,
00:07:50
просто хочу указать, как он выглядит,
00:07:52
окей, так что теперь мы давайте обсудим,
00:07:57
какие функции есть, прежде
00:08:00
всего, давайте посмотрим на саму страницу, чтобы
00:08:02
мы загружали индекс, который на самом деле является
00:08:05
именно этим, потому что это под общим
00:08:10
макетом, это фактическая страница,
00:08:14
хорошо, поэтому под макетом общей папки
00:08:16
подчеркните это это настоящая
00:08:18
страница, но прямо здесь, в строке 34,
00:08:21
она говорит в теле рендеринга, и происходит следующее:
00:08:24
мы вставляем нашу бритвенную страницу в этот
00:08:30
раздел, в этой строке, вот в этой строке, в строке 34,
00:08:32
где говорится в теле рендеринга, поэтому мы
00:08:35
вводим в этот случай по умолчанию
00:08:38
мы вставляем нашу индексную страницу,
00:08:41
и поэтому он помещает этот код прямо сюда, все
00:08:44
эти строки кода с первой по десятую, и
00:08:47
помещает его в макет прямо здесь, в строке 34,
00:08:51
хорошо, что означает, что если вы хотите
00:08:54
изменить всю страницу, вы заходите в этот
00:08:57
макет подчеркивания, и вы вносите изменения,
00:09:00
типа, ну, это почти 2020 год, так что давайте вам
00:09:04
знать изменения, скажем, 2020 год будет впереди
00:09:06
игры, и вместо пользовательского интерфейса бритвенных страниц, где
00:09:10
я говорю, что я Тим Кори, что-то в этом роде,
00:09:14
окей, вот кто авторские права на это, хорошо, теперь
00:09:18
это мы размышляли об этом на каждой странице,
00:09:21
потому что все страницы проходят через
00:09:24
этот стандартный макет. Я предполагаю, что
00:09:28
вы видели кое-что из этого раньше, если
00:09:30
вы прочитали мое введение в asp.net
00:09:33
MVC, который на самом деле представляет собой asp dotnet framework
00:09:37
. net MVC, вы увидите почти одно и то
00:09:41
же, поскольку страница макета является
00:09:43
общей, тело рендеринга приложения и многое
00:09:47
другое, это было то же самое, однако
00:09:49
есть ключевое отличие, поэтому я собираюсь
00:09:51
указать на различия здесь, вы знаете, я
00:09:54
любезный Я пытаюсь повторить все снова и
00:09:56
снова, что видео по-прежнему очень
00:09:58
актуально для сегодняшнего дня, но я хочу
00:10:01
отметить, что основные веб-приложения dotnet и asp.net,
00:10:06
будь то страницы Razor,
00:10:08
MVC или blazer, используют загрузочную платформу в качестве
00:10:15
своей структуры. обратите внимание, здесь мы видим
00:10:17
загрузочную загрузку, но версия загрузочной загрузки
00:10:20
равна четырем, поэтому под корнем WW выглядит, что
00:10:24
я объясню через минуту, если вы видите
00:10:26
JavaScript, упс Lib bootstrap, а затем
00:10:32
dist, если вы посмотрите под JavaScript здесь,
00:10:34
посмотрите на этот загрузочный файл, который вы ' посмотрю в
00:10:35
самом верху, там написано, что это была версия начальной загрузки
00:10:37
4.3, указывает один, ну, в
00:10:44
приложениях dotnet framework asp net,
00:10:47
это загрузочная версия 3, обычно 3.7,
00:10:53
так какая разница, можем ли мы обновить,
00:10:56
и ответ - нет, на самом деле вы
00:10:58
действительно хотите остаться на основной версии с
00:11:01
начальной загрузкой, на которой вы были запущены, все
00:11:04
в порядке, и причина в том, что произошли
00:11:06
огромные критические изменения с
00:11:09
начальной загрузки 3 на начальную загрузку 4, поэтому
00:11:13
Microsoft осталась с
00:11:16
инфраструктурой dotnet, получает загрузочную версию 3, а новые
00:11:20
проекты в ядре dotnet загружаются
00:11:23
4, ок, так что это Доступна последняя версия
00:11:27
dot of bootstrap, и bootstrap
00:11:30
позволяет нам красиво и аккуратно размещать наши страницы.
00:11:34
Это хорошая структура, которая
00:11:37
позволяет нам делать ряд вещей, если
00:11:40
вы не знакомы, но прикрепите
00:11:43
браузер кафедры здесь, получите bootstrap dot-com
00:11:48
и, прежде всего, я хочу высоко
00:11:53
оценить команду, которая занимается начальной загрузкой,
00:11:56
этот сайт потрясающий, это
00:12:01
золотой стандарт документации, которому вы хотите
00:12:04
следовать, если создаете свое собственное
00:12:06
приложение, хорошо, поэтому прежде всего обратите внимание, что в
00:12:09
верхнем правом углу написано: 4.3
00:12:11
ну, если вы работаете над проектом dotnet framework
00:12:14
и используете три точки,
00:12:18
извините, три целых три целых семь,
00:12:20
думаю, это было, но вы набираете
00:12:23
нужную версию, и это документация
00:12:25
для этой версии, хорошо,
00:12:27
так что Лэнсу четыре пункт три пункта X,
00:12:29
который, как я полагаю, у нас - четыре целых три
00:12:31
пункта один, так что теперь мы можем перейти к
00:12:35
уведомлению о документации. Я здесь, щелкните
00:12:38
документацию, и теперь здесь вы
00:12:41
можете найти документацию практически для
00:12:43
всего, что вы хотите сделать с помощью начальной загрузки, так что
00:12:46
для пример макета, как мы хорошо делаем макет,
00:12:48
есть контейнеры, и вот как
00:12:51
он выглядит, а затем есть гибкий
00:12:53
контейнер, вот как это работает,
00:12:55
и есть адаптивные точки останова, и вот
00:12:58
размеры, окей, а потом вы
00:13:01
продолжаете спускаться сюда, и там будет говориться
00:13:03
о z-index а затем перейдите к сетке,
00:13:06
как это хорошо работает, вот
00:13:07
как будет
00:13:09
выставляться оценка, и есть пример в коде,
00:13:11
и есть пример в HTML, окей, вот
00:13:17
варианты, вот
00:13:18
макеты и вот как это сделать, хорошо,
00:13:21
тогда вы переходите к контенту, и там говорится
00:13:24
о типографике, и какой
00:13:27
размер у ваших возрастных тегов, которые
00:13:29
вы можете изменить, но вот стандартный
00:13:33
код, как вы делаете разделы встроенного кода, как
00:13:37
вы блокируете такие разделы кода, как
00:13:40
вы делаете переменные пользователя входные изображения
00:13:44
вот как вы делаете изображения Я мог бы
00:13:46
просмотреть все это и показать вам
00:13:47
все, но и просто очень доволен
00:13:50
этой документацией. Я часто ловлю
00:13:54
себя на том, что просто иду и получаю загрузку, спокойно просматриваю
00:13:57
документацию, а затем ищу
00:14:01
нужные мне компоненты обычно там, где я оказываюсь,
00:14:04
потому что обычно я ищу
00:14:06
что-то конкретное, но вы знаете, формы, вот и все,
00:14:09
там есть все ваши разные
00:14:11
примеры того, как вы делаете форму с
00:14:14
разными размерами и тому подобное, индикаторы
00:14:15
выполнения бум, вот и все, ладно,
00:14:19
достаточно о начальной загрузке но особенно если
00:14:22
вы новичок в HTML, CSS и JavaScript
00:14:25
и не совсем уверены в том, что
00:14:27
делаете, то сайт начальной загрузки
00:14:31
действительно поможет вам, если вы не знаете, что
00:14:34
делаете все это, просто визуально прокрутите
00:14:36
список посмотрите, что у него есть,
00:14:38
а затем вы увидите здесь варианты рендеринга,
00:14:42
и если, возможно, вы этого хотите, вы просто берете
00:14:45
их код и ставите на свое место, хорошо, так что
00:14:47
это все HTML в стиле начальной загрузки, а начальная
00:14:51
загрузка - это просто структура поверх
00:14:54
HTML и CSS и JavaScript, вам не
00:14:57
обязательно его использовать, но он делает макеты и
00:15:02
единообразие всегда
00:15:04
очень простыми, так что его довольно часто
00:15:07
используют, хорошо, так что это самозагрузка, это то,
00:15:10
что у нас есть на бритвенных страницах, это
00:15:13
самозагрузка, так что просто обратите внимание это
00:15:16
версия, которую нужно использовать, хорошо, теперь я
00:15:21
указал Бри Фли, что эта корневая папка WW прямо здесь,
00:15:27
хорошо, это новинка для основных проектов dotnet
00:15:30
в проектах dotnet framework, у нас вроде как
00:15:36
не было хорошей истории для статических
00:15:39
ресурсов, но тем не менее в Интернете есть много
00:15:42
статических ресурсов, у нас есть файлы CSS и
00:15:47
файлы JavaScript, а также, возможно, файлы изображений
00:15:50
и всегда другие вещи, которые мы как бы
00:15:53
помещали в стандартную
00:15:56
структуру проекта Visual Studio и просто не работали
00:15:59
так хорошо, это работало, но не идеально, и
00:16:03
поэтому команда, когда они переосмысливали, как
00:16:05
будет работать ядро ​​dotnet, и
00:16:08
они смотрят на asp.net, в частности,
00:16:11
они сказали, давайте создадим место для
00:16:14
статических ресурсов, чтобы эта папка называлась
00:16:18
WW root каждого проекта, и здесь
00:16:23
корень этой папки - это то, что будет в
00:16:26
корне вашего проекта, поэтому обратите внимание, что
00:16:28
значок находится прямо под
00:16:31
корнем ww, ну, если вы выйдете, и мы посмотрим
00:16:36
здесь, он где-то здесь, я подумал,
00:16:43
о, вы знаете, что вам не нужно
00:16:47
его указывать, он просто тянет его, извините так что он
00:16:49
тянет его, он находит значок в
00:16:51
корне вашего веб-каталога, ну, он
00:16:54
вытащит этот значок, потому
00:16:56
что он находится в корне корня WW, хорошо, так что
00:17:01
это произойдет с содержимым наших бритвенных страниц,
00:17:03
это на самом деле будет внедрить его
00:17:06
в эту корневую структуру WW, хорошо, так что
00:17:10
все, что вы сюда поместите, будет
00:17:13
перенесено на сайт, начиная с корня,
00:17:16
хорошо, корневая косая черта CSS косая черта сайта CSS
00:17:20
ну, у нас есть корень, который является
00:17:25
Tildy, а затем у нас есть косая черта CSS косая черта
00:17:29
сайта CSS окей это относится к этому файлу
00:17:32
прямо здесь,
00:17:34
хорошо, так что это базовый макет и
00:17:40
структура. У нас есть папка lib, и сюда
00:17:42
вы добавляете внешние
00:17:43
ресурсы, поэтому загрузите jQuery.
00:17:46
Проверка jQuery и навязчивая
00:17:49
проверка jQuery. Вы можете принести сюда свои собственные
00:17:52
и вставить их. вот и это
00:17:53
своего рода структура того, как вы
00:17:55
это сделаете, а теперь давайте поговорим
00:18:02
об основах работы Razor Page,
00:18:05
если вы заметили, что под страницами есть
00:18:10
наше представление с подчеркиванием, импорт с представлением с подчеркиванием,
00:18:13
начало, это страницы, которые помогут нам
00:18:17
начать работу. страницы-рейзера, но у нас
00:18:19
есть три страницы индекса ошибок и конфиденциальности.
00:18:23
Эти три страницы — это наши
00:18:27
вводные страницы или наши шаблонные страницы, чтобы
00:18:30
показать нам, что может произойти сейчас. Индекс — это
00:18:34
наша страница по умолчанию. Это страница, которая
00:18:37
будет загружена, если вы этого не сделаете. Не указывайте какой-либо URL-адрес,
00:18:39
например, если у вас есть только основной URL-адрес, но вы
00:18:41
знаете, например, косую черту то или это, то эта
00:18:45
индексная страница - это то, что сейчас имеет Лоу, если вы
00:18:48
загружаете обычный веб-сервер где-то
00:18:49
еще
00:18:50
с помощью только HTML, без dotnet или чего-то еще,
00:18:53
как правило, ваша стартовая страница будет
00:18:56
называться индексной точкой HTM или индексным HTML,
00:18:59
это типичная стартовая страница в PHP,
00:19:02
обычно это будет индексная точка PHP, поэтому для
00:19:06
ядра dotnet это будет индексная точка CSS
00:19:10
HTML, хорошо, это всего лишь их версия
00:19:14
отправной точки, так что это своего
00:19:18
рода отраслевой стандарт чтобы назвать это индексом,
00:19:21
теперь оттуда у нас также есть конфиденциальность, у
00:19:24
нас есть ошибка, окей, теперь давайте посмотрим на
00:19:29
индексную страницу, на индексной странице есть несколько
00:19:33
вещей, которые нам нужно увидеть, прежде всего,
00:19:36
на странице в самой верхней строке,
00:19:39
это указывает теперь есть страница бритвы,
00:19:44
символ @ всякий раз, когда вы видите символ @
00:19:45
на странице бритвы, или M
00:19:48
видите, что они указывают синтаксис бритвы,
00:19:51
что немного сбивает с толку, потому что тот
00:19:55
факт, что синтаксис бритвы работает в MVC, а
00:19:58
не только в бритве, окей, так что есть
00:20:03
пара разные вещи, называемые razor,
00:20:07
являются синтаксическими, так как страница в порядке, так что это
00:20:11
страница razor, которая использует
00:20:14
синтаксис razor, поэтому at указывает на
00:20:18
синтаксис razor, это означает, что это
00:20:21
код c-sharp, который они запускали на нашей
00:20:26
веб-странице. Приятно то, что он также
00:20:29
демонстрирует нам, как именно использовать
00:20:31
синтаксис бритвы, так что вы можете либо делать это
00:20:34
в строке, чтобы страница приложения и модель приложения были
00:20:37
такими, либо вы можете иметь многострочную строку с
00:20:41
этими фигурными скобками, поэтому фигурную скобку и
00:20:43
закрытую фигурную скобку а затем внутри у вас
00:20:46
есть код C Sharp, все в порядке,
00:20:50
так что в любом случае работает, это зависит от ваших
00:20:53
обстоятельств, что вам нужно, поэтому у нас есть
00:20:57
страница приложения, на которой говорится, что это модель приложения на странице бритвы,
00:20:59
здесь написано индексная модель, что это за
00:21:03
индексная модель, это
00:21:07
данные, связанные с этой страницей,
00:21:10
обычно у вас всегда будет только одна
00:21:12
модель, и на самом деле это то, что мы бы
00:21:17
назвали кодом, если вы думаете
00:21:20
о WinForms или веб-формах, окей, вот
00:21:24
как это выглядит, на самом деле это
00:21:26
модель страницы, вот что такое называется
00:21:30
моделью страницы, и это прямо здесь, хорошо,
00:21:35
и мы рассмотрим некоторые из них, всего на минутку,
00:21:37
но это та модель, которая сейчас, если вы
00:21:41
знакомы с веб-формами, которые взяты из
00:21:44
asp.net, и это происходит еще
00:21:47
в asp. net появились веб-формы, я думаю,
00:21:51
это было до-диез
00:21:53
- хорошо, еще в прошлом, я не думаю, что это
00:21:57
было для одного, но я не уверен, но
00:21:59
это очень-очень рано в
00:22:02
жизненном цикле See Sharp, когда эти веб-формы
00:22:05
вышли и это была модель, в которой у вас
00:22:07
был веб-код на внешнем интерфейсе, а затем
00:22:10
сразу за кодом у вас был код c-sharp,
00:22:12
который запускал бы фон и
00:22:15
выполнял работу c-sharp.
00:22:18
Целью было получить что-то очень-очень
00:22:19
похожее. на WinForms с помощью этого простого
00:22:22
перетаскивания и модели с кодом,
00:22:24
но для Интернета это то, что
00:22:28
умирает и уходит, поэтому
00:22:33
многие люди все еще любят веб-формы, это
00:22:36
технология, от которой вам нужно отойти,
00:22:38
но это тот, который люди все еще
00:22:41
вкладывают в веб-формы, не
00:22:45
очищает, продвигается вперед в ядре dotnet,
00:22:47
это сделано
00:22:49
с версии dotnet framework, четыре точки восемь,
00:22:52
это последнее серьезное изменение или даже
00:22:55
незначительное изменение в веб-формах, единственное, что
00:22:58
будет добавлено с этого момента, - это исправления безопасности окей, вот и все,
00:23:03
так что отойдем от веб-форм,
00:23:07
это нам нужно сделать, ок, но у них была
00:23:10
похожая модель, однако эта страница,
00:23:13
ну, она выглядит очень похожей, но под
00:23:17
обложками радикально отличается, потому что на
00:23:20
самом деле это стиль фреймворка mvvm, поэтому у
00:23:26
нас есть наше представление, которое это индексная
00:23:29
страница, и у нас есть модель представления, которая
00:23:33
называется нашей моделью страницы, окей, и это вот
00:23:36
эта страница, и самое
00:23:39
интересное, что это просто класс, а это
00:23:41
означает, что мы действительно можем проводить модульное
00:23:44
тестирование этого кода, стоящего за тем, что я называю
00:23:47
этим. код, стоящий за ним, на самом деле является
00:23:50
моделью представления для нашего представления, окей, это
00:23:55
действительно большое преимущество, потому что мы можем иметь
00:23:59
лучшее покрытие кода через
00:24:01
наш пользовательский интерфейс, окей,
00:24:04
поэтому мы посмотрим, что делает эта модель,
00:24:07
всего через минуту, но это и есть эта модель
00:24:09
связан с этой строкой номер два
00:24:12
здесь индекс модели,
00:24:15
строки модели с третьей по пятую связывают
00:24:18
домашнюю страницу текста со
00:24:21
свойством заголовка данных представления,
00:24:26
данные представления являются словарем, это,
00:24:30
по сути, свалка, куда вы
00:24:32
помещаете пары ключ-значение, хорошо
00:24:34
поэтому в этом случае мы можем указать заголовок и
00:24:37
сказать домашнюю страницу, и если вы вернетесь
00:24:40
к общему макету, вы увидите здесь
00:24:43
заголовок, который мы извлекаем из этих данных представления,
00:24:46
заголовок и помещаем это значение сюда, чтобы на
00:24:50
каждой странице, которую вы посещали это изменит эту
00:24:52
версию заголовка, поэтому изменится
00:24:55
страница макета, даже если мы находимся на
00:24:59
странице, которая просто вводится прямо
00:25:01
здесь, окей, вот
00:25:04
что происходит здесь, а затем у
00:25:08
нас есть совсем немного HTML и
00:25:09
CSS, как раз достаточно для
00:25:16
приветственного сообщения, хорошо, так вот что такое
00:25:19
страница в друге, это
00:25:21
набор представлений, давайте посмотрим на ее сторону модели представления.
00:25:25
Модель страницы в модели страницы - это
00:25:29
просто класс, поэтому индексированная модель общедоступного класса
00:25:32
она наследует от модели страницы. и у нас
00:25:35
здесь есть конструктор, который запрашивает
00:25:37
ilogger,
00:25:39
поэтому, если вы смотрели мое видео о ведении журналов
00:25:42
и ядре dotnet, это регистратор, который вы можете
00:25:45
найти, но любой регистратор, который вы хотите,
00:25:46
если хотите, Сара log, круто, продолжайте
00:25:48
и сделайте это, если вы хотите подключить журнал, чтобы
00:25:50
все, что вы хотите сделать, было
00:25:52
введено прямо здесь, мы можем использовать это,
00:25:55
например, для регистрации всякий раз, когда у нас есть
00:25:59
запрос на получение этой страницы, теперь поднимите ваши
00:26:02
страницы, как правило, довольно просто,
00:26:05
их цель - очень очень просто, поэтому
00:26:08
в отличие от MVC, который имеет широкий спектр
00:26:11
глаголов, и вы можете иметь несколько глаголов
00:26:14
и множество, например, несколько
00:26:16
разных сообщений на одном и том же контроллере,
00:26:18
и вы можете иметь несколько разных
00:26:20
представлений в одном и том же контроллере, эта
00:26:23
модель страницы предназначена только для этой страницы и
00:26:26
обычно у вас есть один или два
00:26:29
получения и публикации, это обычно все, что вы получаете,
00:26:33
получите прямо здесь, что это делает,
00:26:36
это то, что визуализирует эту страницу, так что это
00:26:41
код c-sharp, который запускается, когда
00:26:44
вы запрашиваете индексную страницу, сообщение, которое у
00:26:48
нас пока нет, я
00:26:51
временно сделаю общедоступным, я сейчас скажу void,
00:26:55
но в сообщении типа, чтобы оно
00:27:00
запускалось всякий раз, когда вы публикуете данные на этой
00:27:04
странице, так что это два глагола, которые мы
00:27:07
обычно имеем на странице если они отсутствуют, то
00:27:10
сообщение будет просто
00:27:13
включено, потому что вы можете захотеть
00:27:15
показать страницу, но на самом деле не собирать с
00:27:17
нее информацию, например,
00:27:20
индексная страница на самом деле не является причиной для сбора
00:27:23
информации с нее, просто показывает нам
00:27:25
индексная страница просто показывает нам, эй,
00:27:28
вот приветственное сообщение по
00:27:30
этому поводу, однако, если бы мы были, скажем,
00:27:34
скажем, страницей регистрации или страницей, которая собирает
00:27:39
информацию о моем моем адресе, хорошо, что на
00:27:43
этой странице также было бы сообщение о публикации, чтобы оно было включено
00:27:46
get, который отображает
00:27:48
форму, а затем при публикации захваты - это
00:27:51
данные из формы, мы увидим, что
00:27:54
всего через минуту
00:27:56
мы обычно на самом деле не передаем данные
00:28:00
через методы get или post не
00:28:04
напрямую, вместо этого мы используем свойства, поэтому если бы у
00:28:08
меня было это свойство, давайте назовем нас ID,
00:28:11
это свойство может быть прочитано индексной
00:28:17
страницей, поэтому, если iris a at model dot ID, который
00:28:24
будет извлекать идентификатор, обратите внимание, что это int,
00:28:27
он вытащит идентификатор из этого
00:28:30
свойства прямо здесь, так что любые
00:28:32
свойства, которые у вас есть в вашей индексной модели
00:28:35
вы можете отобразить на этой странице,
00:28:40
если вы хотите писать в них, тогда вы
00:28:44
должны пометить их как доступные для записи, и я делаю
00:28:47
это, вы говорите в квадратных скобках
00:28:51
свойство привязки, хорошо, давайте просто скажем, что это
00:28:55
свойство привязки, и если я оставлю его точно
00:28:57
так же, единственный способ записать
00:29:00
это значение идентификатора - это опубликовать эти данные, чтобы
00:29:05
я не мог поместить их в URL-адрес, который будет git,
00:29:09
поэтому я не могу сказать, что, учитывая, что
00:29:11
идентификатор вопросительного знака индексной страницы равен четырем, это
00:29:15
будет не работает, потому что это только сообщение.
00:29:18
Мне нужно было заполнить форму, в которой я нажал кнопку «Отправить» в
00:29:22
этом сообщении, однако, если я хочу
00:29:25
поместить идентификатор в URL-адрес, который заключает
00:29:29
в круглые скобки, и сказать, что поддержка поддержки
00:29:33
получает значение «истина», теперь я могу либо опубликовать к
00:29:39
этим данным через форму или я могу поместить их в
00:29:43
URL-адрес. Я могу сказать, что идентификатор вопросительного знака
00:29:45
равен четырем, и теперь, когда вы вызываете
00:29:49
метод on get, значение идентификатора оставьте, давайте
00:29:54
попробуем очень быстро, поэтому я изменил это
00:29:56
свойство,
00:29:58
давайте сделаем имя окей,
00:30:03
и ты знаешь, что давайте ничего не менять,
00:30:09
я оставлю это прямо здесь, чтобы у нас было
00:30:10
имя, и мы оставим его в поддержку,
00:30:12
и это все, что мы сделаем, мы собираемся
00:30:17
изменить уведомление, теперь у меня есть красная волнистая линия с надписью «
00:30:18
ID подходит». не существует, но здесь
00:30:22
написано «Добро пожаловать» мы скажем «Добро пожаловать»
00:30:25
добавляет имя модели с точкой и так сказать «
00:30:31
Добро пожаловать» и мое имя,
00:30:32
надеюсь, давайте запустим это и посмотрим, что мы
00:30:36
получим, посмотрим, действительно ли это работает нормально, поэтому
00:30:40
он запускает пустельгу, Castrol
00:30:43
запускается сейчас, наш страница запускается и говорит, что это
00:30:45
приветствуется, почему она говорит, просто добро пожаловать,
00:30:47
ну, я никогда не передавал значение, поэтому, если
00:30:52
я говорю, что имя с вопросительным знаком
00:30:54
равно
00:30:57
Тиму, нажмите Enter, добро пожаловать ему, он зафиксировал
00:31:03
это значение из URL-адреса и сказал: «О,
00:31:08
это параметр» и его
00:31:11
свойство имени, и если мы перейдем к имени,
00:31:14
мы увидим, что да, это поддерживает get, поскольку
00:31:18
мы поместили значение в это свойство,
00:31:20
теперь на странице мы можем прочитать это
00:31:23
свойство и отобразить значение, хорошо, мы
00:31:28
могли бы получить даже немного более умно и
00:31:30
скажите при получении, если давайте просто скажем, что
00:31:36
строковая точка равна нулю или пробелу для
00:31:40
имени, поэтому, если оно равно нулю или пусто по
00:31:45
имени, тогда как имя равно
00:31:49
пользователю, так что привет пользователь или привет Тим, давайте
00:31:56
снова встанем, и, надеюсь, теперь это говорит:
00:32:01
приветствую пользователя, я хорошо знаю, на самом деле его
00:32:05
имя равно Тиму, здравствуйте, Тим, хорошо,
00:32:10
мы можем начать со значения по умолчанию и
00:32:13
изменить его, если пользователь переопределит его
00:32:15
с помощью параметра в URL-адресе, вот как
00:32:20
вы делаете свойство getbind, теперь мы
00:32:24
собираюсь опубликовать сообщение через минуту,
00:32:26
но я хочу показать вам немного,
00:32:28
как эти свойства работают сейчас, ради
00:32:31
безопасности, вы не знаете, я
00:32:34
подчеркиваю это очень четко, вы
00:32:37
не хотите публиковать, или мне очень жаль отправлять данные
00:32:41
по этому URL-адресу, которые каким-либо образом
00:32:44
конфиденциальны, абсолютно
00:32:47
никаких паролей, никакой информации о кредитной карте,
00:32:50
никакого номера социального страхования,
00:32:52
вероятно, даже их имени, обычно
00:32:55
мы просто указываем идентификаторы, просто чтобы сказать: «ОК, дайте мне
00:32:59
эту конкретную запись, и все»
00:33:03
не размещайте информацию на URL-адрес, который в
00:33:07
каком-то смысле является конфиденциальным, я имею в
00:33:08
виду личную
00:33:10
информацию, хорошо,
00:33:13
я очень четко объяснил, что
00:33:15
обычно это просто идентификатор, но я использую
00:33:18
это как демонстрацию, потому что это очень ясно
00:33:21
и легко увидеть, хорошо, теперь я хочу показать
00:33:26
вы, как работают макеты страниц бритвы, то есть,
00:33:31
как это работает, чтобы узнать, где получить
00:33:36
страницу или как хорошо работает макет URL-адреса страницы
00:33:39
прямо сейчас, у нас есть все на
00:33:43
нижних страницах, поэтому индекс ошибок и
00:33:46
конфиденциальность, если мы запустим этот сайт и посмотрим
00:33:50
на ссылку конфиденциальности он говорит косая черта,
00:33:53
конфиденциальность, окей, это прямо в корне, так что
00:33:57
это корень URL-адреса, вот эта
00:34:00
часть, где написано, что HTTPS
00:34:03
знает, что мы тестируем в режиме SSL. HTTPS
00:34:06
localhost, двоеточие пять тысяч один, это
00:34:09
корневой URL-адрес, но тут у меня есть косая черта
00:34:14
конфиденциальности, и это означает, что
00:34:18
это путь к этой конкретной странице.
00:34:21
уведомление не является личным, эти точки CSS HTML,
00:34:25
это просто косая черта конфиденциальности. Вот как
00:34:27
работает бритвенная маршрутизация страниц, она работает на основе
00:34:33
пути от страниц по отношению к
00:34:37
страницам, что означает, что если я добавлю
00:34:41
сюда папку и скажу, что это будут формы,
00:34:48
а затем внутри здесь я создам
00:34:52
страницу бритвы, она готова заплатить мне, пустая,
00:34:56
я добавлю, и имя страницы будет,
00:35:00
назовем ее добавить добавьте адрес, хорошо,
00:35:07
мы воспользуемся флажком «Создать класс модели страницы».
00:35:10
Убедитесь, что он установлен,
00:35:11
что будет генерироваться этот код
00:35:14
за файлом, который является моделью представления, мы
00:35:18
не собираемся использовать частичное представление или не
00:35:19
создавать частичное представление, мы являемся
00:35:21
Полный просмотр между полной страницей,
00:35:24
по сути, не является частью страницы. Теперь я
00:35:27
использую эту страницу макета или оставляю эту
00:35:29
пустую, которая использует начальный файл представления,
00:35:32
который находится здесь, который указывает на
00:35:35
нашу HTML-страницу CSS макета с подчеркиванием, поэтому
00:35:40
мы нажимаем «Добавить», вот и все. чтобы создать
00:35:42
страницу под названием «добавить адрес», хорошо, мы
00:35:46
собираемся использовать это в качестве примера для того, как
00:35:49
публиковать данные. требуется немного времени, чтобы восстановить
00:35:52
пакет, необходимый для формирования
00:35:55
нашей первой формы, хорошо, вот почему это
00:35:58
занимает немного, просто это на самом деле
00:36:00
загрузите несколько новых пакетов get, но внутренний
00:36:03
адрес добавления здесь не так уж и велик, и мы
00:36:06
можем поставить здесь пробел, и там написано: «Добавить
00:36:08
адрес», вот и все,
00:36:09
вы также можете поместить туда пробел, поэтому
00:36:13
давайте запустим резервное копирование нашей веб-страницы или
00:36:15
приложения, которое мы собираемся просмотреть. на
00:36:18
эту страницу добавления адреса, ну, если мы просто
00:36:22
сказали косую черту, добавьте адрес, мы получим, что страница
00:36:28
не может быть найдена, потому что она находится в
00:36:31
папке форм, и все находится
00:36:33
относительно папки страниц, поэтому страницы - это
00:36:38
маршрут, поэтому я говорю, что это формы, косая черта,
00:36:42
добавьте адрес, и есть моя страница добавления адреса,
00:36:46
потому что она находится относительно корня
00:36:49
страниц, поэтому она находится внутри папки форм,
00:36:52
а затем добавляется адрес, если я хочу
00:36:55
изменить местонахождение этой страницы, я
00:36:57
могу просто переместить ее в другую папку
00:36:59
и изменить URL-адрес для
00:37:02
очевидно, что это не то, что вы хотите
00:37:04
делать очень часто, потому что это нарушает
00:37:06
целую кучу ссылок, поэтому давайте
00:37:10
выясним, как создать здесь форму,
00:37:15
которая будет принимать адрес пользователя,
00:37:18
уличный адрес, почтовый индекс штата, города, только
00:37:21
те значения, которые обычно мы бы использовали.
00:37:25
начнем с создания здесь формы, но
00:37:28
мы собираемся подключить ее к нашей модели,
00:37:31
которой у нас еще нет,
00:37:34
чтобы мы могли добавить код программной части,
00:37:38
давайте закроем все это, мы могли бы поместить в
00:37:41
модель страницы все свойства нам
00:37:45
нужен почтовый адрес, город, штат, zip,
00:37:47
но на самом деле это не то, как обычно работает c-sharp,
00:37:50
вместо этого у нас обычно есть
00:37:52
модель c-sharp, затем mvvm, у нас есть
00:37:57
представление модели и модель представления, это
00:38:01
модель представления, форма или представление - это
00:38:06
страница формы а затем сама наша модель переносится
00:38:09
в отдельный объект C Sharp, так что он находится
00:38:12
в корне пользовательского интерфейса страниц Razor. Я создаю
00:38:16
новую папку, внутри которой я назову эти модели,
00:38:22
я создам класс и назову
00:38:27
это своей моделью адреса, это уже
00:38:33
общедоступен, поэтому я создаю здесь несколько значений.
00:38:57
почтовые индексы -
00:38:59
это строки, хотя
00:39:01
в них есть только цифры, поэтому в Соединенных Штатах
00:39:04
в наших почтовых индексах или
00:39:07
почтовых индексах нет букв, это просто цифры,
00:39:10
однако есть некоторые почтовые индексы, которые
00:39:13
начинаются с 0, вы не можете иметь номер,
00:39:17
который начинается с 0, он хранится
00:39:18
без начального 0, потому что это
00:39:21
недопустимо для числа, это не причина
00:39:24
иметь начальный 0, поэтому почтовый
00:39:26
индекс - это не число, это строка, это
00:39:30
одна из многих причин, почему у
00:39:33
строки есть другие причины а также,
00:39:34
например, вы не добавляете и не вычитаете почтовые
00:39:36
индексы,
00:39:39
так что модель адреса, которую мы сейчас
00:39:42
собираемся сделать, находится в нашем коде, который я называю нашим кодом
00:39:45
за нашей моделью страницы, где я создаю
00:39:48
свойство, поэтому подтвердите, что оно имеет тип
00:39:52
контрольной точки модели адреса. чтобы добавить наш
00:39:56
оператор использования для этого местоположения, и я
00:40:00
позвоню по этому адресу. Я собираюсь сделать
00:40:06
это свойством привязки. Я НЕ собираюсь
00:40:10
делать это свойством привязки, которое поддерживает
00:40:12
получение только свойства покупки. Я получаю, я
00:40:17
не буду делать что-нибудь в публикации, я зафиксирую
00:40:19
эти значения, но давайте вернемся к нашему
00:40:22
представлению и создадим форму. Я не
00:40:25
собираюсь делать все это красиво. Я часто
00:40:28
обсуждаю это, но реальность такова, что
00:40:31
речь идет о бритвенных страницах, чтобы сделать это
00:40:34
красиво. больше разговор о
00:40:36
начальной загрузке, поэтому я стараюсь не делать слишком много
00:40:40
дополнительных вещей, кроме страниц бритвы, поэтому мы
00:40:43
просто создадим базовую форму, поэтому
00:40:47
метод формы — это сообщение, это важно, потому что
00:40:50
это сообщает тегу формы, как вы
00:40:55
это отправляете, поэтому, когда вы нажмите
00:40:57
кнопку «Отправить», которая является ключевой кнопкой, затем он
00:41:00
отправит это как публикацию, которую мы
00:41:04
обычно получаем при получении, и при публикации, если у нас
00:41:07
есть данные, то мы собираемся
00:41:09
захватить это сообщение при отправке, поэтому убедитесь, что оно
00:41:13
отправляется. через сообщение, хорошо, у меня есть несколько
00:41:16
входных данных, и это будет тип,
00:41:22
равный тексту, и затем это действительно
00:41:27
хорошая функция AS ASP - всякий раз, когда вы находитесь в
00:41:33
элементе в HTML, практически в любом
00:41:36
элементе, у него, вероятно, есть что-то, что
00:41:40
является помощником asp net, поэтому вы
00:41:45
вводите asp - и если вы заметили в
00:41:47
intellisense, что происходит сейчас, ASP
00:41:52
обратите внимание, что после тире написано точка-точка-точка,
00:41:55
это потому, что это связано с этим
00:41:58
элементом, поэтому он загрузит этот список,
00:42:00
как только вы нажмете - вы получаете - теперь это
00:42:04
то, что вы можете делать с элементом ввода,
00:42:06
это все помощники,
00:42:08
мне нужен asp - потому что это
00:42:13
позволит мне указать на определенное
00:42:16
свойство в моей модели адреса и сказать, что
00:42:20
это имеет отношение нам, на что это
00:42:22
ссылается, поэтому, если у вас есть данные в этом
00:42:25
свойстве, отобразите их в форме, если вы
00:42:28
поместите информацию в форму и опубликуете ее, вот
00:42:31
где она находится в этом
00:42:33
свойстве, поэтому в этом случае я скажу
00:42:36
уведомление об адресе. сначала не нужна
00:42:39
модель приложения, поэтому адрес точка адрес улицы
00:42:46
хорошо, поэтому я связал это не только с
00:42:49
объектом, но и с объектом внутри
00:42:52
объекта, поэтому у меня есть свойство адреса,
00:42:56
но внутри улицы или
00:42:58
модели адреса есть улица Свойство адреса, вот на
00:43:01
что я сейчас связал. Я
00:43:05
назову заполнитель, назову
00:43:08
уличный адрес и закрою свой
00:43:14
ввод, давайте сделаем это еще раз или еще
00:43:18
три раза, и у нас будет город-
00:43:25
штат и почтовый индекс, не забудьте наши
00:43:36
заполнители, вот
00:43:43
так, теперь у меня есть форма, в которой есть четыре
00:43:46
поля ввода для адреса, города, штата
00:43:48
и почтового индекса, у нас есть кнопка, теперь
00:43:53
тип равен «отправить», это тот специальный
00:43:58
тип, который будет сообщать, когда вы нажимаете
00:44:02
это отправит все эти данные обратно в
00:44:07
модель страницы в наш код, и
00:44:11
он будет делать это по почте, так что теперь
00:44:17
вернемся сюда, нам нужно захватить эту
00:44:19
информацию, так что давайте получим
00:44:25
результат действия общественного внимания. Это типичный вывод
00:44:29
из публикуем, потому что мы выполняем какое-то
00:44:33
действие, когда вы отправляете форму, будь то
00:44:36
переход на другую страницу, переход на другой
00:44:39
сайт или даже обновление этой страницы и очистка
00:44:42
формы, что бы это ни было, у нас есть какой-то
00:44:46
тип действия, который мы выполняем при публикации, и это
00:44:51
ключевое слово, поэтому razor Pages смотрит на это
00:44:55
и говорит: «ОК, я посмотрю», и так далее,
00:45:01
а затем действие, глагол «so get this» — это
00:45:06
вызов get и т. д., а затем «post», это
00:45:10
метод post, теперь это Юнг Ли
00:45:13
прямо сейчас, потому что у меня есть нет возвращаемого
00:45:14
значения, поэтому давайте создадим возвращаемое значение,
00:45:19
давайте проведем небольшую
00:45:21
проверку модели, поэтому, если состояние модели действительно, является
00:45:29
ложным, поэтому, если что-то не так с
00:45:32
нашими входящими значениями, возможно, вы не
00:45:36
заполнили поле, которое вам требовалось,
00:45:37
тогда мы находимся на странице возврата, в противном случае
00:45:44
возвращаемся, и прямо сейчас мы собираемся
00:45:47
перенаправить на страницу и давайте перенаправим на
00:45:53
страницу индекса,
00:45:56
хорошо, так что индекс с точкой и косой чертой, хорошо, и это
00:46:05
хорошо, перенаправим на эту страницу, вот
00:46:08
так, давайте поставим точку останова правильно вот теперь
00:46:12
состояние нашей модели будет действительным,
00:46:14
несмотря ни на что, потому что
00:46:16
сейчас нет никакой проверки,
00:46:18
мы можем изменить это опущение, но
00:46:19
сейчас мы собираемся оставить нас в покое и
00:46:21
сказать: да, мы хотим добавить адрес, используя
00:46:25
косая черта косая черта добавить адресную страницу. Я
00:46:29
не хочу вводить это каждый раз, поэтому
00:46:32
давайте вернемся к моей общей странице, перейдите к макету,
00:46:34
и здесь вы видите эту навигационную панель, где у нас
00:46:38
есть две навигационные ссылки, действительно
00:46:41
круто, что они уже проделали всю
00:46:43
работу Чтобы продемонстрировать, как они работают,
00:46:45
просто скопируйте раздел li, который обозначает
00:46:50
элемент списка в HTML, и вставьте его теперь, просто
00:46:56
следуйте инструкциям, по существу,
00:46:58
где он говорит индекс или изменение, которое
00:47:01
образует косую черту, добавьте адрес и где
00:47:07
написано «дом», где sa добавьте адрес, теперь мы
00:47:13
есть ссылка непосредственно на нашу форму, нажмите
00:47:17
кнопку «Выполнить», чтобы запустить это, давайте
00:47:20
убедимся, что вы установили эту точку останова, мы это сделали,
00:47:23
теперь у нас запускаются пустельги, и у нас
00:47:26
есть наша страница, у нас есть этот адрес добавления, вот
00:47:29
наша форма адреса действительно
00:47:32
некрасивая, но она работает уличный адрес,
00:47:35
штат города и почтовый индекс, давайте вставим что-нибудь:
00:47:39
один, два, три,
00:47:41
авеню в Скрэнтоне, Пенсильвания, и один, восемь. У меня есть
00:47:49
что-то вроде этого, хорошо, это
00:47:52
достаточно близко, так что адрес может нажать «
00:47:56
Отправить», я просто нажал «действителен», и там
00:48:00
написано местные жители говорят, что это
00:48:04
правда, но давайте немного расширим это и
00:48:08
посмотрим, это
00:48:10
адрес, это стоимость
00:48:15
недвижимости прямо здесь один два три
00:48:20
Оук-авеню Скрэнтон, Пенсильвания один восемь пять пять
00:48:24
один вот наш адрес в нашей модели Я
00:48:27
не сделал мне не нужно ничего передавать в это
00:48:31
сообщение, мне нужно поместить сюда любые значения,
00:48:34
иметь модель и задать для нее JSON,
00:48:37
нет, ничего из этого, все это
00:48:39
обрабатывается компилятором, который выясняет,
00:48:43
как связать эти вещи с помощью этой
00:48:46
привязки свойство также обратите внимание, что мы используем это
00:48:49
свойство привязки без get, что
00:48:52
означает, что оно может только отправлять сообщения, но мы
00:48:54
только что обновили его, все в порядке, так что это
00:48:58
работает, и теперь, если мы нажмем «
00:49:00
Продолжить», страница скажет: «Ой, я
00:49:04
не могу» найти индекс, хорошо, значит, у нас
00:49:07
там неправильный URL-адрес. Я думаю, что на самом деле это может быть
00:49:11
просто точка, давайте попробуем еще раз и выясним,
00:49:15
сейчас я могу отправить эту форму без каких-либо
00:49:19
значений в ней, потому что мне это не требовалось,
00:49:22
поэтому доход здесь, нажмите «Отправить» и нет,
00:49:25
хорошо еще один снимок, прежде чем я на самом деле
00:49:28
погуглю, просто сократите этот, посмотрим, не
00:49:35
используете ли вы его, хорошо, я обычно
00:49:37
не перенаправляюсь на индексную страницу, поэтому, если
00:49:40
вы не используете его в течение минуты, вы
00:49:42
забываете, как это сделать да, я погуглил,
00:49:45
хорошо, это был простой индекс косой черты, а
00:49:51
не индекс точечной косой черты. Я думаю, что
00:49:55
со временем это могло измениться.
00:49:57
Я думаю, что раньше это была точка, но добавьте
00:50:00
отправку адреса, которая возвращается к
00:50:02
началу, но что, если мы захотим внести
00:50:06
изменения на нашу нашу страницу здесь, в Сатане,
00:50:09
вместо того, чтобы поприветствовать пользователя, мы
00:50:12
поприветствуем Скрэнтона, основываясь на
00:50:15
городе пользователя, в котором он хорошо жил, мы
00:50:18
могли бы это сделать, давайте перейдем на индексную
00:50:21
страницу
00:50:22
и перейдем к модели страницы, и вот мы'
00:50:27
сейчас мы собираемся изменить это на город, если
00:50:35
город равен нулю, тогда мы собираемся сделать
00:50:40
это, скажем, мы скажем Интернет, поэтому скажите «
00:50:48
Добро пожаловать в Интернет», если у них нет
00:50:52
адреса, поэтому здесь вместо имени
00:50:55
это будет город, и я говорю:
00:50:58
добро пожаловать в Скрэнтон,
00:51:01
добро пожаловать в Филадельфию, добро пожаловать в
00:51:05
Интернет, если у вас ничего нет, давайте попробуем, ну,
00:51:08
запустите эту запеканку, она
00:51:11
запускается, и теперь веб-страница запущена,
00:51:14
там написано: добро пожаловать в веб-сайт и
00:51:17
адрес. Я просто вставлю город,
00:51:19
просто Крэнстон нажмите «Отправить», добро пожаловать в
00:51:23
Интернет, пока ничего не изменилось, ну, я
00:51:25
полагаю, мы на самом деле не передали значения
00:51:27
обратно, как нам это сделать, мы можем
00:51:31
перейти к нашему добавить адрес, который у нас есть, это
00:51:35
перенаправить страницу, мы делаем пробел с Ctrl,
00:51:38
здесь мы замечаем, что у нас есть третья из
00:51:42
восьми перегрузок, и одна из них — это
00:51:46
значения маршрута объекта, поэтому мы можем добавить
00:51:49
значение маршрута, поэтому я бы сказал,
00:51:52
новый пустой объект или новый анонимный
00:51:57
объект, скажем, город равен адресу с точкой
00:52:04
города, поэтому это анонимный объект, который
00:52:08
мы сейчас создаем, он будет выделен серым цветом,
00:52:10
потому что этот адрес точка города это
00:52:14
свойство города может быть именем, которое
00:52:17
предполагается именем свойства
00:52:20
в анонимном объекте Я бы
00:52:24
прямо сказал об этом здесь и сказал: «О, это Город», но
00:52:26
если бы я не включил это, то
00:52:29
он бы создал новое свойство в
00:52:31
анонимном объекте под названием «Город» и поместил бы
00:52:34
в него это значение,
00:52:36
давайте попробуем еще раз, давайте запустим это, это
00:52:42
запуск Kestrel, добро пожаловать в
00:52:45
Интернет. Я скажу «Скрэнтон», и я
00:52:49
нажму «Отправить», «Добро пожаловать в
00:52:50
Скрэнтон». Уведомление в URL-адресе,
00:52:53
давайте сделаем одно, в котором говорится, что
00:52:57
город с вопросительным знаком равен Скрэнтону, так что его
00:53:00
публикация или размещение значение
00:53:02
на этой странице с помощью get, что означает, что вы
00:53:06
должны пометить это как разрешение
00:53:09
команде get отображать это на странице,
00:53:12
однако, сделав это, мы теперь можем
00:53:16
настроить эту индексную страницу на основе
00:53:19
адреса, который вы добавляете сейчас, один из
00:53:22
вопросов Меня всегда спрашивают: все в порядке, Тим,
00:53:25
теперь ты это сделал, как ты осуществляешь
00:53:28
доступ к данным с помощью страниц-рейзеров, а затем
00:53:31
следующий вопрос будет в порядке, теперь ты покажешь
00:53:34
мне, как сделать доступ к данным с помощью страниц-рейзеров,
00:53:35
как ты делаешь MVC,
00:53:37
как насчет API, как насчет blazer, и
00:53:41
ответ на все вопросы один и тот же,
00:53:43
потому что я хочу очень четко это подчеркнуть:
00:53:46
ваш доступ к данным не должен
00:53:51
зависеть от того, какой пользовательский интерфейс вы используете,
00:53:55
ваш доступ к данным должен быть абсолютно одинаковым,
00:53:58
независимо от того, какой пользовательский интерфейс вы
00:54:02
хотите для использования Я только что прошел
00:54:06
полный курс базового модуля c-sharp по
00:54:09
доступу к данным, и большую часть его
00:54:12
я использовал консольные приложения, чтобы показать нам,
00:54:15
как работать с определенным типом доступа к данным,
00:54:18
потому что на самом деле все это имело не пользовательский
00:54:22
интерфейс.
00:54:25
имело значение код библиотеки классов, который
00:54:27
я написал для взаимодействия с базой данных, потому что
00:54:31
тогда консоль могла бы вызвать его или
00:54:33
приложение Razor Pages могло бы вызвать его,
00:54:35
и фактически я показал это в какой-то момент,
00:54:37
когда я создавал приложение Razor Pages
00:54:40
и вызывал очень-очень аналогичная
00:54:43
библиотека классов, которая вызывалась консольным
00:54:46
приложением, которое я называл, это были бритвенные страницы,
00:54:48
такой же доступ
00:54:50
не имел значения, поэтому здесь мы говорим
00:54:53
об рекламном адресе и говорим:
00:54:57
окей, у нас есть эта модель, я не
00:55:00
делаю это в этой модели, но сохраните модель в
00:55:04
базе данных, окей,
00:55:06
мы пойдем, вот
00:55:08
туда и идет код, но у меня есть эта
00:55:11
модель адреса, вы знаете, что я бы с ней сделал,
00:55:13
я бы отдал это в
00:55:16
библиотеку классов и сказал: «Эй, сохрани» это
00:55:19
продолжение, где MongoDB, или космос, или
00:55:22
API, не имеет значения, сохраните ли вы его, а
00:55:26
потом мне все равно, что произойдет, я
00:55:29
дал вам модель, вы берете данные
00:55:33
оттуда и сохраняете, вот что произошло
00:55:36
с другой сторона, скажем, индексная
00:55:39
страница, где у нас есть это на git,
00:55:44
может быть, мне нужны данные из базы данных, может быть,
00:55:47
я хочу получить этот город, основываясь на том,
00:55:49
кто вошел в систему, ну, я бы на самом деле не
00:55:53
разговаривал с базой данных напрямую, я бы
00:55:55
сказал, хорошо, уровень доступа к данным, который находится в
00:55:58
библиотеке классов, вы даете мне
00:56:02
город пользователя, и мне не придется беспокоиться в
00:56:05
этом приложении о том, откуда оно
00:56:08
его берет, в библиотеке классов он
00:56:11
будет беспокоиться, хорошо, мне нужно получить
00:56:12
это из сиквела, и поэтому синхронизация вызовов будет
00:56:14
выполнять вызовы и возвращать модель, и
00:56:17
все это взамен, поэтому, если пользовательский интерфейс
00:56:20
не имеет значения, какой доступ к данным вы
00:56:23
используете, а для доступа к данным не имеет
00:56:26
значения, какой пользовательский интерфейс вы используете, вот
00:56:28
как работает отключенная архитектура,
00:56:31
вы действительно, очень, очень на самом
00:56:33
деле я не хочу привязывать вашу базу данных
00:56:36
непосредственно к вашему пользовательскому интерфейсу, что
00:56:39
означает, что вам придется заменять все
00:56:41
приложение, когда вы меняете одно из них,
00:56:45
это нехорошо, потому что пользовательские
00:56:47
интерфейсы сильно меняются, как и базы данных, которые
00:56:50
вы не хотите просто менять заменяйте
00:56:53
все свое приложение на новое каждый
00:56:55
раз, когда вы хотите внести изменения в одно из
00:56:57
них, именно так вы застреваете с одним и тем
00:57:00
же пользовательским интерфейсом через 20 лет после того, как он
00:57:02
устарел,
00:57:03
с той же структурой базы данных или
00:57:05
системой баз данных через 20 лет после того, как его нет.
00:57:08
больше не поддерживается, потому что вы связали
00:57:10
все вместе, не делайте этого, хорошо, я
00:57:13
сказал, что мы опубликуем это, так что
00:57:16
давайте сделаем это, теперь у меня есть курс по
00:57:21
проектированию жизненного цикла приложения,
00:57:25
где мы берем веб-приложение с
00:57:29
двумя разными базами данных Типы: один — это
00:57:31
инфраструктура объектов, а другой —
00:57:34
сиквел-сервер Strahler, и мы развертываем все три из
00:57:37
них в трех разных средах
00:57:40
разработки и производства. У меня
00:57:42
есть курс, который создает полную
00:57:46
архитектуру для этого в Azure DevOps
00:57:49
и показывает непрерывный процесс CI CD.
00:57:53
интеграция и непрерывное
00:57:54
развертывание, которые выходят за рамки этого
00:57:57
видео. Это видео посвящено только приложениям страниц RAZR,
00:58:01
поэтому я не буду заходить так
00:58:03
далеко, вместо этого мы собираемся щелкнуть правой кнопкой мыши по
00:58:06
пользовательскому интерфейсу RAZR Pages и нажать «Опубликовать», и
00:58:09
здесь у нас есть несколько варианты, которые мы можем
00:58:13
опубликовать в качестве службы приложений для Windows или
00:58:18
Linux в качестве виртуальной машины или мы можем
00:58:21
даже опубликовать в IAS или в папке, в которой
00:58:25
будут опубликованы опубликованные файлы, которые вы
00:58:26
затем сможете скопировать в установку или
00:58:30
что-то еще, что мы собираемся опубликовать. в
00:58:32
службу приложений в Azure, теперь я могу выбрать
00:58:37
существующий, или вы можете создать новый,
00:58:40
что я сделаю вместо этого, я перенесу
00:58:42
вас на портал, это
00:58:44
портал Azure, теперь я уверен, что он не совсем бесплатен,
00:58:49
и это что-то Я очень стараюсь
00:58:51
не показывать вам вещи, о которых я говорю:
00:58:55
ок, вот действительно классная вещь, которую вы можете сделать,
00:58:57
но за это нужно платить, ок, я очень
00:59:00
стараюсь избегать этого, поэтому
00:59:02
я не использую платные плагины мои
00:59:05
визуальные эффекты для вашего окружения. Я стараюсь
00:59:07
избегать этого, чтобы вы не чувствовали себя
00:59:10
хуже, чем если бы вы не могли себе что-то позволить.
00:59:12
Именно поэтому на YouTube так много бесплатного
00:59:14
контента,
00:59:16
потому что не каждый может позволить себе мои
00:59:18
курсы. Я понимаю, что вам не
00:59:20
обязательно, вы можете пройти бесплатные курсы и
00:59:23
получить собственное образование.
00:59:25
Я предоставлю вам массу отличных
00:59:26
ресурсов, но Ашер предоставляет вам
00:59:31
много бесплатных вещей.
00:59:33
Я думаю, что когда вы зарегистрируетесь,
00:59:35
они будут стоить около 200 долларов. дайте вам бесплатный кредит, тогда
00:59:38
будут некоторые услуги, которые будут бесплатными
00:59:40
в течение целого года, после этого, я
00:59:44
думаю, сейчас есть 20 или 25 сервисов, которые будут
00:59:47
бесплатными на всю жизнь, одна из этих услуг - это
00:59:51
служба приложений, ок, служба приложений - это обычно
00:59:54
веб-сайт хорошо, теперь мы собираемся
00:59:58
создать один из них, бесплатная версия
01:00:01
- это самый базовый уровень, и я
01:00:04
покажу вам, что это такое, вы не собираетесь
01:00:08
управлять своим бизнесом с помощью этого, но
01:00:11
я сейчас нажал «Создать веб-приложение ресурсов».
01:00:15
просто если вы не можете вести бизнес за счет этого, это
01:00:16
не значит, что оно не подходит для тестирования.
01:00:18
Это идеальное место для тестирования, так что
01:00:22
это новое веб-приложение, которое задаст вам
01:00:24
несколько вопросов, одна из которых - какая у
01:00:27
меня сейчас подписка просто знайте, я считаю, что
01:00:29
вам нужна кредитная карта, чтобы
01:00:33
активировать бесплатную подписку, они
01:00:36
не будут взимать с вас плату, однако вам
01:00:39
необходимо иметь эту карту, и поэтому
01:00:41
в некоторых странах это вызывает некоторые проблемы, если
01:00:44
это проблема из-за вашей страны,
01:00:46
вы можете связаться с Microsoft, иногда они
01:00:50
могут работать с вами и
01:00:52
все равно настроить вас, хорошо, так что не позволяйте этому останавливать вас,
01:00:55
вежливо попросите о помощи, хорошо, так что у нас,
01:01:01
как и у меня, есть подписка Visual Studio Enterprise,
01:01:03
которая дает мне сто
01:01:05
пятьдесят долларов кредит каждый
01:01:07
месяц, если у вас есть подписка MSDN или Enterprise
01:01:11
или если у вас есть несколько других
01:01:15
вариантов от Microsoft, то вы,
01:01:18
вероятно, также получите бесплатный кредит, просто
01:01:20
узнайте, поэтому вам придется связать его
01:01:24
с подпиской, но тогда у вас есть группа
01:01:27
ресурсов группы ресурсов — это
01:01:30
имена, которыми они не являются, им не платят,
01:01:35
они не являются ими, они ничего вам не стоят.
01:01:37
Я призываю вас, особенно когда вы
01:01:40
проводите демонстрации или обучаетесь, создайте
01:01:43
группу ресурсов вокруг того, что вы
01:01:45
изучаете, или вашего демонстрационную группу, а затем в
01:01:48
конце вы можете удалить всю эту
01:01:50
группу ресурсов и убедиться, что с вас
01:01:52
ничего не взимается. Также
01:01:55
хорошо группировать вещи в целом,
01:01:58
хорошо, поэтому всегда группа ресурсов «Корея», если она у
01:02:02
вас уже есть, вы можете выбрать ее
01:02:04
из список, но я создаю
01:02:05
здесь новый, и это так же просто, как дать ему
01:02:08
имя, в этом случае я назову
01:02:10
это демонстрационной группой ресурсов моих страниц бритвы,
01:02:17
да, это немного длинно, но это
01:02:20
описательно, и я всегда заканчиваю его
01:02:22
группами ресурсов Итак, я знаю, что это
01:02:23
тот ресурс, что это
01:02:26
группа ресурсов, теперь мне нужно дать этому
01:02:29
веб-приложению имя, которое уникально во всех
01:02:32
уверенных
01:02:33
уведомлениях, там написано точка, как точка сети вашего веб-сайта,
01:02:36
это будет общедоступный URL-адрес для
01:02:40
него, поэтому, если Я говорю «страницы бритвы». Я получаю зеленую
01:02:46
галочку, очевидно, никто не взял
01:02:49
бритву — название страницы, поэтому я оставлю
01:02:53
это, если вы не получите красную галочку, если
01:02:55
вы пройдете тестирование, вы получите это
01:02:59
имя недоступно, окей итак, вы
01:03:04
как-то бритву я взял бритву, но страницы бритвы
01:03:07
не принимаются, я могу заявить, что теперь публикуйте
01:03:13
код или докер-контейнер, который вы хотите,
01:03:15
мы не собираемся делать докер, мы делаем
01:03:17
только код, и я хочу стек времени выполнения
01:03:21
dotnet core 3.0 Самое интересное в
01:03:25
dotnet core то, что даже если ваш стек
01:03:30
недоступен, скажем, вы выбрали dotnet
01:03:32
core 3.1, который еще не доступен в
01:03:36
Azure, вы можете опубликовать net core 3.1 со
01:03:40
своим веб-приложением и запустить его в
01:03:43
Azure,
01:03:44
но в нашем случае это легко поскольку у нас
01:03:47
уже поддерживается dotnet core 3.0, я
01:03:51
выберу операционную
01:03:53
систему Windows, потому что это то, из чего я
01:03:54
публикую, и я выберу,
01:03:57
что мне нужен регион Востока США, потому что
01:04:01
это то, где я нахожусь, ок,
01:04:06
это мое местоположение — восточное
01:04:08
побережье, поэтому это будет ближе всего ко
01:04:11
мне. Если у вас есть аудитория, скажем,
01:04:16
вы находитесь в Германии, но ваша
01:04:19
аудитория в основном в Южной Америке, тогда
01:04:24
вы должны выбрать регион, наиболее близкий
01:04:28
к вашей аудитории в Южной Америке. ок,
01:04:32
так для них это быстрее всего, ок,
01:04:36
теперь у нас есть
01:04:40
план для Windows. У меня уже есть план для Windows, поэтому у меня есть
01:04:44
только один в этом регионе, так что это
01:04:48
регион, это тип операционной системы
01:04:52
и тип публикации, которые все три из
01:04:56
них должны быть таким же или правильным,
01:04:59
чтобы соответствовать вашему заводу Windows, хорошо,
01:05:02
поэтому, если я выберу Docker, этот список будет
01:05:04
пустым, потому что у меня нет
01:05:07
системы Windows Docker на востоке США, но поскольку у
01:05:11
меня есть система для кода в Windows на Востоке
01:05:15
или в США тогда это появится. Я скажу: «
01:05:18
Создайте новый». Этот план обслуживания приложений
01:05:21
будет называться «
01:05:26
План обслуживания приложений razor». Я нажимаю «ОК», теперь я создаю новый,
01:05:33
кажется, о, круто, я закончил, стоп,
01:05:37
не нажимай. затем, потому что теперь с вас
01:05:42
взимается эта сумма за стандартную
01:05:45
проповедь s1, давайте нажмем «Изменить размер» здесь,
01:05:51
стандартный запрос, один сервер в моем регионе
01:05:54
стоит 43,8 цента США
01:05:58
в месяц, честно говоря, это не имеет большого
01:06:02
значения, когда вы говорите о
01:06:03
рабочем веб-сайте. 43 доллара в месяц — это
01:06:06
чуть больше 30 долларов в день, и если
01:06:11
вы проводите тестирование, это, вероятно,
01:06:13
тоже не так уж важно, потому что это
01:06:15
30 долларов в день, если у вас есть двести
01:06:16
долларов в кредитах и ​​вы тестируете
01:06:18
это для два дня, остальные тратят два
01:06:21
доллара и шестьдесят центов вашего кредита,
01:06:23
это не имеет большого значения, однако, если вы
01:06:27
хотите, чтобы здесь было уведомление о бесплатном сайте, там
01:06:30
написано, что производство, мы хотим, dev slash test,
01:06:33
и есть f1, оранжевый, который
01:06:37
говорит, что общая инфраструктура на один гигабайт
01:06:40
больше память шестьдесят минут вычислений в день
01:06:42
бесплатно, это то, что вам нужно сейчас.
01:06:46
60 минут вычислений в день не
01:06:49
означает, что они работают только 60 минут в день.
01:06:50
Это означает, что если вы нажмете
01:06:55
на веб-сайт, и это займет минуту, сделайте
01:06:57
пакетная обработка, это одна минута
01:07:00
вычислений, вы делаете это 60 раз, и
01:07:03
веб-сайт, очевидно, останавливается, это не очень хорошо
01:07:06
для производства, но отлично подходит для
01:07:08
тестирования, потому что вы, вероятно, не будете
01:07:09
использовать 60 минут вычислений в день, и
01:07:12
опять же, это бесплатно на всю жизнь, нажмите «Применить», и
01:07:17
теперь мы вы используете бесплатный план f1, поэтому
01:07:21
убедитесь, что там написано «бесплатный f1», если вы не
01:07:24
готовы за него платить, мы пропустим
01:07:26
мониторинг, который находится на вкладке вкладки «Мониторинг»,
01:07:29
и на вкладке «Теги» написано правильно для
01:07:32
создания, просмотра и/или создания. и
01:07:38
напишите еще раз нажмите «Создать сейчас». Это
01:07:41
видео не о создании веб-приложений, но
01:07:44
я хочу показать вам это, чтобы вы увидели,
01:07:46
как опубликовать наше очень-очень простое, но все же
01:07:49
функциональное веб-приложение, поэтому
01:07:53
сейчас происходит
01:07:57
развертывание Ашера. для нас это сервер, и он
01:08:00
все это настраивает и настраивает, чтобы
01:08:02
мы могли развернуть наш код прямо на этом
01:08:06
сервере, все в порядке,
01:08:10
и только что закончили завод немного, я
01:08:12
приостанавливаю видео для цемента, но теперь оно
01:08:15
завершено, и если мы немного нажмем на эту кнопку
01:08:18
значок колокольчика, мы видим, что развертывание прошло
01:08:20
успешно, мы можем закрепить его на нашей панели управления,
01:08:22
щелкните по нему, и я могу закрыть это, он
01:08:26
также может закрыть это и перейти на
01:08:28
нашу панель управления, где у нас есть
01:08:32
веб-приложение страниц RAZR, щелкните это, и мы увидим у нас есть
01:08:36
URL-адрес здесь razor - страницы -
01:08:39
сеть вашего веб-сайта, по которому вы можете щелкнуть, и позвольте
01:08:43
мне перейти к нашему приложению Razor Pages,
01:08:45
которое сейчас является просто
01:08:49
уведомлением-заполнителем, мы можем развернуть практически все
01:08:52
в этом месте,
01:08:54
без Java Python PHP Ruby или dotnet ядро,
01:08:58
давайте теперь снимем нас, и что мы
01:09:02
вернулись к нашей опубликованной цели, мы можем сказать,
01:09:05
выберите существующий удар, создайте профиль, это
01:09:10
будет общаться с моей подпиской, и все в
01:09:12
порядке, где мы, с кем мы
01:09:16
разговариваем, и там написано, что
01:09:20
группа ресурсов и я здесь есть группа ресурсов.
01:09:21
Демо-группа ресурсов Razor Pages звучит
01:09:24
знакомо.
01:09:25
Внутри есть Razor Pages, это
01:09:29
новая вещь, которую я только что создал. Теперь я могу нажать «
01:09:32
ОК». Это создаст
01:09:36
профиль публикации, который будет публиковаться в этом
01:09:39
месте. Я могу его настроить, например.
01:09:43
платформа dotnet core, а ее
01:09:46
режим развертывания dotnet core 3
01:09:48
зависит от платформы или является автономным
01:09:52
по умолчанию, зависит от платформы, это занимает
01:09:54
гораздо меньше места, однако, если бы это
01:09:58
было приложение dotnet core 3.1, я бы выбрал
01:10:02
автономный,
01:10:03
чтобы использовать dotnet core с моим приложением
01:10:06
когда он опубликовал его, но я могу оставить
01:10:09
все как есть, вы также можете выбрать другие
01:10:12
параметры, такие как база данных, если был один
01:10:14
вариант публикации файла, например, удалить
01:10:17
дополнительные файлы в месте назначения, которые
01:10:20
могут быть хорошими, можете
01:10:22
сохранить и нажать «Опубликовать», теперь это не
01:10:30
способ выполните полный цикл разработки, это
01:10:35
только для тестирования, если вы хотите
01:10:38
снова выполнить полный цикл разработки. Этот
01:10:41
курс по проектированию жизненного цикла приложения. У меня
01:10:43
есть разговоры о том, как вы это делаете, чтобы
01:10:47
он автоматически собирался для вас,
01:10:50
автоматически проверял, а затем
01:10:51
автоматически публиковал наша публикация
01:10:56
прошла успешно, мы уже обновили
01:10:59
страницу, чтобы сказать: «Добро пожаловать на веб-уведомления».
01:11:01
Страницы RAZR — сетевой адрес вашего веб-сайта,
01:11:05
если бы я был в уведомлениях,
01:11:09
здесь есть предварительное заполнение, поэтому, если я нажму «Отправить сейчас»,
01:11:14
добро пожаловать в Скрэнтон,
01:11:16
поэтому наша веб-страница работать на Azure,
01:11:20
что теперь было совсем не больно, пока
01:11:24
вы смотрите эту демонстрацию, этой страницы
01:11:26
здесь не будет, потому что я не хочу продолжать
01:11:28
за нее платить, теперь это бесплатно. На
01:11:32
самом деле я за это не плачу, но я мог бы
01:11:33
продемонстрировать что вы будете делать, когда
01:11:36
закончите с этим, хорошо, я использую
01:11:39
уведомление о группе ресурсов на своих страницах бритвы.
01:11:42
Я мог бы нажать «Удалить» здесь, однако там написано: «
01:11:46
Страницы бритвы» группы ресурсов «Стоматологическая
01:11:49
группа ресурсов», если я нажму на
01:11:51
все, что связано с этим
01:11:55
приложением «Страницы бритвы». здесь указан обратите внимание, что
01:11:59
это не просто служба приложений, это также
01:12:02
информация о приложении, план службы приложений,
01:12:05
все три из них были созданы, когда я
01:12:09
создавал свою службу приложений. Я не осознавал,
01:12:12
что создаю одну вещь, но я создал
01:12:14
три вещи, однако, поскольку я пометил это
01:12:18
одна вещь с группой ресурсов: она
01:12:20
пометила все, что она создала,
01:12:24
этой же группой ресурсов. Теперь, когда я
01:12:26
выбрал группу ресурсов, я могу
01:12:29
подойти сюда и сказать «Удалить группу ресурсов», если
01:12:32
я нажму на нее, мне нужно ввести
01:12:35
имя группы ресурсов,
01:12:36
которое Я могу скопировать отсюда, но это
01:12:39
для того, чтобы вы не возненавидели
01:12:41
случайное удаление, потому что как только вы удалите
01:12:44
это, оно исчезнет, ​​и вы не сможете вернуть его
01:12:48
обратно, хорошо,
01:12:50
поэтому теперь, когда я набрал NER
01:12:54
и нажал «Удалить»,
01:12:55
оно удалит план обслуживания приложений,
01:12:57
страница сведений о страницах Razor и
01:13:01
страница обслуживания приложений, а также все это
01:13:04
исчезнет. Я нажму «Удалить», это займет
01:13:08
немного времени, это не срочно, но это
01:13:10
гарантирует, что это больше не будет
01:13:13
отображаться в моем счете снова. использовать что-нибудь бесплатное,
01:13:17
но если бы я этого не сделал, если бы я использовал
01:13:19
сервер сиквела или использовал космос ТБ или другие
01:13:22
вещи, за которые мне взимается плата, когда
01:13:26
я делаю демо, это нормально, потому что я
01:13:28
просто демонстрирую это, это будет это обойдется мне в пару
01:13:31
долларов, два или три доллара в день,
01:13:32
в зависимости от того, что я получаю, однако я
01:13:35
не хочу, чтобы с меня постоянно взимали плату изо дня
01:13:38
в день, поэтому, как только я закончу, я
01:13:40
удаляю группу ресурсов и все
01:13:42
ресурсы внутри нее. это, и теперь они
01:13:46
все исчезли, и любые будущие расходы
01:13:49
в порядке, так что эта страница исчезнет очень
01:13:52
скоро, как только она исчезнет, ​​обратите внимание, что этот
01:13:56
профиль публикации больше не будет работать,
01:13:58
поэтому я удалю этот профиль публикации,
01:14:00
таким образом он исчезнет.
01:14:02
он не связан, и вы
01:14:05
на самом деле не публикуете на нем информацию, так что это
01:14:09
введение в основные страницы asp.net razor.
01:14:14
Я хочу показать вам, что, как и любая
01:14:17
другая базовая программа dotnet, существует
01:14:20
программа dot CS, которая делает
01:14:22
немного конфигурация, и самое
01:14:25
главное, она указывает на запуск, где,
01:14:28
например, настраивается внедрение зависимостей.
01:14:31
Если вы хотите добавить
01:14:33
завершенное внедрение зависимостей, вы должны
01:14:35
сделать это здесь, как вы видели в
01:14:37
других основных проектах dotnet, есть
01:14:41
пара из дополнительных вещей,
01:14:43
например, используется обработчик исключений, и он
01:14:46
отправляет его на страницу с косой чертой, которая
01:14:49
является
01:14:50
нашей страницей по умолчанию, прямо здесь, и у нас есть
01:14:54
страницы для поднятия карты прямо здесь, так что
01:14:57
здесь есть пара дополнительных записей, но по
01:15:00
большей части это стандартная стартовая
01:15:03
страница, поэтому, если вы знакомы с
01:15:06
ядром dotnet в целом, это очень-очень
01:15:08
знакомо, просто есть несколько дополнительных
01:15:11
частей, хорошо,
01:15:12
так что это вступление, чтобы поднять ваши
01:15:19
страницы и то, как они работают, надеюсь, вы получили
01:15:21
представление о том, как работать они
01:15:24
очень, очень быстрые, очень простые в использовании,
01:15:27
особенно по сравнению с MVC, который
01:15:30
немного больше и громоздче, имеет
01:15:32
немного больше накладных расходов, но мы могли бы добавить
01:15:36
сюда MVC, смешать их и получить
01:15:38
MVC и бритвенные страницы в зависимости от того, как мы
01:15:42
его структурировали. хорошо, это обзор,
01:15:46
надеюсь, вы что-то из этого извлекли,
01:15:47
если хотите продвинуться дальше. У меня есть
01:15:50
несколько курсов, которые могут помочь, а также несколько
01:15:52
видеороликов на YouTube, которые могут помочь,
01:15:54
например,
01:15:57
на YouTube есть видео о Azure DevOps, которое покажет вам больше
01:15:59
о как использовать веб-страницу с Azure
01:16:02
DevOps для непрерывной интеграции и
01:16:04
развертывания, если вы собираетесь пойти
01:16:06
дальше, это
01:16:08
курс по проектированию жизненного цикла приложения, а
01:16:11
также введение в ядро ​​dotnet, которое дает
01:16:13
некоторое представление о страницах Razer, а
01:16:16
также MVC и API среди другие, а
01:16:20
также есть другой контент, если вы хотите перейти
01:16:22
на Я Тим Кэрри, спокойно, ок, спасибо, что
01:16:25
смотрите так много, как всегда, Я Тим
01:16:28
Кэрри
01:16:29
[Музыка]
01:16:42
ты

Описание:

ASP.NET Core is the web side of .NET Core development. Under this umbrella are three major components - Razor Pages, MVC, Blazor, and API. All of these project types can co-exist in the same website without an issue, yet they all fill a different role. In this video, we are going to look at Razor pages, the quickest and easiest way to create a powerful server-side web application in C#. We will look at how to set a project up, how to capture and display data, and how to deploy it. Source Code: https://leadmagnets.app/?Resource=razor-pages Mailing List: https://signup.iamtimcorey.com/ Application Lifecycle Design: https://www.iamtimcorey.com/p/application-lifecycle-design Getting Started with .NET Core: https://www.iamtimcorey.com/courses/getting-started-with-dotnet-core/ C# Mastercourse: https://www.iamtimcorey.com/courses/csharp-mastercourse/ Intro to Azure DevOps: https://www.youtube.com/watch?v=H-R2bCXfz8I Logging in .NET Core 3.0: https://www.youtube.com/watch?v=oXNslgIXIbQ 0:00 - Intro 1:34 - Creating demo ASP .NET Core Web app 4:35 - Demo app launching and overview 7:53 - Layout and index pages explained 9:27 - ASP. NET and bootstrap 15:20 - Root folder 18:00 - Razor pages explained 25:17 - Page View Model 27:56 - Properties and Data in page view model 33:25 - Page paths 37:08 - Web form, Data Model and Data Post 53:21 - Note on Data Access 57:13 - Publish Razor Pages app in Azure 1:14:08 - Summary and concluding remarks Thanks to Ralfs HBK for the chapters breakdown

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Intro to ASP.NET Core Razor Pages - From Start to Published"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Intro to ASP.NET Core Razor Pages - From Start to Published" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Intro to ASP.NET Core Razor Pages - From Start to Published"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Intro to ASP.NET Core Razor Pages - From Start to Published" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Intro to ASP.NET Core Razor Pages - From Start to Published"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Intro to ASP.NET Core Razor Pages - From Start to Published"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.