Kniga-Online.club
» » » » Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Читать бесплатно Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен. Жанр: Программирование год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:
libman.json, где указаны все файлы, необходимые для разрабатываемого приложения:

{

  "version": "1.0",

  "defaultProvider": "cdnjs",

  "defaultDestination": "wwwroot/lib",

  "libraries": [

    {

      "library": "[email protected]",

    "destination": "wwwroot/lib/jquery",

      "files": [ "jquery.js", "jquery.min.js" ]

    },

    {

      "library": "[email protected]",

      "destination": "wwwroot/lib/jquery-validation",

       "files": [ "jquery.validate.js", "jquery.validate.min.js",

                  "additional-methods.js", "additional-methods.min.js" ]

    },

    {

      "library": "[email protected]",

      "destination": "wwwroot/lib/jquery-validation-unobtrusive",

      "files": [ "jquery.validate.unobtrusive.js",

                 "jquery.validate.unobtrusive.min.js" ]

    },

    {

      "library": "[email protected]",

      "destination": "wwwroot/lib/bootstrap",

      "files": [

        "css/bootstrap.css",

        "js/bootstrap.bundle.js",

        "js/bootstrap.js"

      ]

    },

    {

      "library": "[email protected]",

      "destination": "wwwroot/lib/font-awesome/",

      "files": [

        "js/all.js",

        "css/all.css",

        "sprites/brands.svg",

        "sprites/regular.svg",

        "sprites/solid.svg",

        "webfonts/fa-brands-400.eot",

        "webfonts/fa-brands-400.svg",

        "webfonts/fa-brands-400.ttf",

        "webfonts/fa-brands-400.woff",

        "webfonts/fa-brands-400.woff2",

        "webfonts/fa-regular-400.eot",

        "webfonts/fa-regular-400.svg",

        "webfonts/fa-regular-400.ttf",

        "webfonts/fa-regular-400.woff",

        "webfonts/fa-regular-400.woff2",

        "webfonts/fa-solid-900.eot",

        "webfonts/fa-solid-900.svg",

        "webfonts/fa-solid-900.ttf",

        "webfonts/fa-solid-900.woff",

        "webfonts/fa-solid-900.woff2"

      ]

    }

  ]

}

На заметку! Вскоре будет объяснена причина отсутствия в списке минифицированных файлов.

После сохранения libman.json (в Visual Studio) файлы будут загружены в каталог wwwrootlib проекта. Если же вы работаете в командной строке, тогда введите следующую команду, чтобы перезагрузить все файлы:

libman restore

Доступны дополнительные параметры командной строки, которые можно просмотреть с помощью команды libman -h.

Обновление ссылок на файлы JavaScript и CSS

С переходом на диспетчер библиотек местоположение многих файлов JavaScript и CSS изменилось. Файлы Bootstrap и jQuery были загружены в каталог dist. Кроме того, в приложение был добавлен набор инструментов для значков и шрифтов Font Awesome.

Местоположение файлов Bootstrap необходимо изменить на ~/lib/boostrap/css вместо ~/lib/boostrap/dist/css. Добавьте Font Awesome в конец, прямо перед site.css. Модифицируйте файл _Head.cshtml, как показано ниже:

<meta charset="utf-8" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<title>@ViewData["Title"] - AutoLot.Mvc</title>

<environment include="Development">

  <link rel="stylesheet" href="~/lib/bootstrap/css/bootstrap.css"

    asp-append-version="true"/>

</environment>

<environment exclude="Development">

  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/

bootstrap.min.css"

    asp-fallback-href="~/lib/bootstrap/css/bootstrap.css"

    asp-fallback-test-class="sr-only"

    asp-fallback-test-property="position"

    asp-fallback-test-value="absolute"

    crossorigin="anonymous"

    integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/

iJTQUOhcWr7x9JvoRxT2MZw1T"/>

</environment>

<link rel="stylesheet" href="~/lib/font-awesome/css/all.css"

  asp-append-version="true"/>

<link rel="stylesheet" href="~/css/site.css"

  asp-append-version="true"/>

Далее модифицируйте файл JavaScriptFiles.cshtml, удалив dist из местоположений jQuery и Bootstrap:

<environment include="Development">

  <script src="~/lib/jquery/jquery.js" asp-append-version="true"></script>

  <script src="~/lib/bootstrap/js/bootstrap.bundle.js"

    asp-append-version="true"></script>

</environment>

<environment exclude="Development">

  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"

    asp-fallback-src="~/lib/jquery/jquery.min.js"

    asp-fallback-test="window.jQuery"

    crossorigin="anonymous"

    integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=">

  </script>

 <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/

bootstrap.bundle.min.js"

    asp-fallback-src="~/lib/bootstrap/js/bootstrap.bundle.min.js"

    asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"

    crossorigin="anonymous"

    integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C

8PRhcEn3czEjhAO9o">

  </script>

</environment>

<script src="~/js/site.js" asp-append-version="true"></script>

Финальное изменение связано с обновлением местоположений jquery.validate в частичном представлении _ValidationScriptsPartial.cshtml:

<environment include="Development">

  <script src="~/lib/jquery-validation/jquery.validate.js"

    asp-append-version="true"></script>

   <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"

     asp-append-version="true"></script>

</environment>

<environment exclude="Development">

  <script src="https://cdnjs.cloudflare.com/ajax/libs/

jquery-validate/1.19.1/jquery.validate.min.js"

    asp-fallback-src="~/lib/jquery-validation/jquery.validate.min.js"

    asp-fallback-test="window.jQuery && window.jQuery.validator"

    crossorigin="anonymous"

    integrity="sha256-F6h55Qw6sweK+t7SiOJX+2bpSAa3b/fnlrVCJvmEj1A=">

  </script>

   <script src="https://cdnjs.cloudflare.com/ajax/libs/

jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js"

     asp-fallback-src="~/lib/jquery-validation-unobtrusive/

jquery.validate.unobtrusive.min.js"

     asp-fallback-test="window.jQuery && window.jQuery.validator &&

window.jQuery.validator.unobtrusive"

  crossorigin="anonymous"

  integrity="sha256-9GycpJnliUjJDVDqP0UEu/bsm9U+3dnQUH8+3W10vkY=">

  </script>

</environment>

Завершение работы над представлениями CarsController и Cars

В этом разделе будет завершена работа над представлениями CarsController и Cars. Если вы установите в true флаг RebuildDatabase внутри файла appsettings.development.json, тогда любые изменения,внесенные вами во время тестирования этих представлений, будут сбрасываться при следующем запуске приложения.

Класс CarsController

Класс CarsController является центральной точкой приложения AutoLot.Mvc, обладая возможностями создания, чтения, обновления и удаления. В этой версии CarsController напрямую используется уровень доступа к данным. Позже в главе вы создадите еще одну версию CarsController, в которой для доступа к данным будет применяться служба AutoLot.Api.

Приведите операторы using в классе CarsController к следующему виду:

using AutoLot.Dal.Repos.Interfaces;

using AutoLot.Models.Entities;

using AutoLot.Services.Logging;

using Microsoft.AspNetCore.Mvc;

using Microsoft.AspNetCore.Mvc.Rendering;

Ранее вы добавили класс контроллера с маршрутом. Теперь наступило время добавить экземпляры реализаций ICarRepo и IAppLogging<CarsController> через внедрение зависимостей. Добавьте две переменные уровня класса для хранения этих экземпляров, а также конструктор, который будет внедрять оба экземпляра:

private readonly ICarRepo _repo;

private readonly IAppLogging<CarsController> _logging;

public CarsController(ICarRepo repo, IAppLogging<CarsController> logging)

{

  _repo = repo;

  _logging = logging;

}

Частичное представление списка автомобилей

Списковые представления (одно для целого реестра автомобилей и одно для списка автомобилей по производителям) совместно используют частичное представление. Создайте в каталоге ViewsCars новый каталог по имени Partials и добавьте в него файл представления _CarListPartial.cshtml, очистив его содержимое. Установите IEnumerable<Car> в качестве типа (его ненужно указывать полностью, поскольку в файл _ViewImports.cshtml добавлено пространство имен AutoLot.Models.Entities):

@model IEnumerable< Car>

Далее добавьте блок кода Razor с набором булевских переменных, которые указывают, должны ли отображаться производители. Когда частичное представление CarListPartial.cshtml применяется полным реестром автомобилей, производители будут показаны, а когда отображаются автомобили только одного производителя, то поле Make должно быть скрыто:

@{

    var showMake = true;

    if (bool.TryParse(ViewBag.ByMake?.ToString(), out bool byMake))

    {

        showMake = !byMake;

    }

}

В следующей разметке ItemCreateTagHelper используется для создания ссылки на метод Create() типа HttpGet. В случае применения специальных вспомогательных функций дескрипторов имя указывается с использованием "шашлычного" стиля в нижнем регистре, т.е. суффикс TagHelper отбрасывается, а каждое слово в стиле Pascal приводится к

Перейти на страницу:

Эндрю Троелсен читать все книги автора по порядку

Эндрю Троелсен - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Эндрю Троелсен. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*