Категории
Самые читаемые
ChitatKnigi.com » 🟢Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

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

Читать онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
1 ... 632 633 634 635 636 637 638 639 640 ... 642
Перейти на страницу:

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать

На заметку! При обновлении своих представлений с целью добавления ссылок на пакетированные файлы среда Visual Studio сообщит о том, что они не существуют. Не переживайте, все будет визуализироваться из кеша.

Обновление _Viewlmports.cshtml

 На финальном шаге в систему добавляются вспомогательные функции дескрипторов WebOptimizer. Они работают точно так же, как вспомогательные функции дескрипторов asp-append-version, описанные ранее в главе, но делают это автоматически для всех пакетированных и минифицированных файлов. Поместите в конец файла _ViewImports.cshtml следующую строку:

@addTagHelper *, WebOptimizer.Core

Шаблон параметров в ASP.NET Core

Шаблон параметров обеспечивает доступ сконфигурированных классов настроек к другим классам через внедрение зависимостей. Конфигурационные классы могут быть внедрены в другой класс с применением одной их версий IOptions<T>. В табл. 31.6 кратко описан ряд версий интерфейса IOptions.

Добавление информации об автодилере

На автомобильном сайте должна отображаться информация об автодилере, которая обязана быть настраиваемой без необходимости в повторном развертывании всего сайта, чего можно достичь с использованием шаблона параметров. Начните с добавления информации об автодилере в файл appsettings.json:

{

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

  "Logging": {

    "MSSqlServer": {

      "schema": "Logging",

      "tableName": "SeriLogs",

      "restrictedToMinimumLevel": "Warning"

    }

  },

  "ApplicationName": "AutoLot.MVC",

  "AllowedHosts": "*",

<b>  &quot;DealerInfo&quot;: {</b>

<b>    &quot;DealerName&quot;: &quot;Skimedic's Used Cars&quot;,</b>

<b>    &quot;City&quot;: &quot;West Chester&quot;,</b>

<b>    &quot;State&quot;: &quot;Ohio&quot;</b>

<b>  }</b>

}

Далее понадобится создать модель представления для хранения информации об автодилере. Добавьте в каталог Models проекта AutoLot.Mvc новый файл класса по имени DealerInfo.cs со следующим содержимым:

namespace AutoLot.Mvc.Models

{

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

  public class DealerInfo

  {

    public string DealerName { get; set; }

    public string City { get; set; }

  public string State { get; set; }

  }

}

На заметку! Конфигурируемый класс должен иметь открытый конструктор без параметров и не быть абстрактным. Стандартные значения можно устанавливать в свойствах класса.

Метод Configure() интерфейса IServiceCollection сопоставляет раздел конфигурационных файлов с конкретным типом. Затем этот тип может быть внедрен в классы и представления с применением шаблона параметров. Откройте файл Startup.cs и добавьте в него показанный ниже оператор using:

using AutoLot.Mvc.Models;

Перейдите к методу ConfigureServices() и поместите в него следующую строку кода:

services.Configure&lt;DealerInfo&gt;(Configuration.GetSection(nameof(DealerInfo)));

Откройте файл HomeController.cs и добавьте в него такой оператор using:

using Microsoft.Extensions.Options;

Затем модифицируйте метод Index(), как продемонстрировано далее:

[Route(&quot;/&quot;)]

[Route(&quot;/[controller]&quot;)]

[Route(&quot;/[controller]/[action]&quot;)]

[HttpGet]

public IActionResult Index<b>([FromServices] IOptionsMonitor&lt;DealerInfo&gt; dealerMonitor)</b>

<b>{</b>

<b>  var vm = dealerMonitor.CurrentValue;</b>

<b>  return View(vm);</b>

}

Когда класс сконфигурирован в коллекции служб и добавлен в контейнер DI, его можно извлечь с использованием шаблона параметров. В рассматриваемом примере OptionsMonitor будет читать конфигурационный файл, чтобы создать экземпляр класса DealerInfo. Свойство CurrentValue получает экземпляр DealerInfo, созданный из текущего файла настроек (даже если файл изменялся после запуска приложения). Затем экземпляр DealerInfo передается представлению Index.cshtml.

Обновите представление Index.cshtml, расположенное в каталоге ViewsHome, чтобы оно было строго типизированным для класса DealerInfo и отображало свойства модели:

@model AutoLot.Mvc.Models.DealerInfo

1 ... 632 633 634 635 636 637 638 639 640 ... 642
Перейти на страницу:
Отывы о книге
Открыть боковую панель
Комментарии
Настя
Настя 08.12.2024 - 03:18
Прочла с удовольствием. Необычный сюжет с замечательной концовкой
Марина
Марина 08.12.2024 - 02:13
Не могу понять, где продолжение... Очень интересная история, хочется прочесть далее
Мприна
Мприна 08.12.2024 - 01:05
Эх, а где же продолжение?
Анна
Анна 07.12.2024 - 00:27
Какая прелестная история! Кратко, ярко, захватывающе.
Любава
Любава 25.11.2024 - 01:44
Редко встретишь большое количество эротических сцен в одной истории. Здесь достаточно 🔥 Прочла с огромным удовольствием 😈