Чтение онлайн

на главную - закладки

Жанры

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

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

На финальном шаге в систему добавляются вспомогательные функции дескрипторов WebOptimizer. Они работают точно так же, как вспомогательные функции дескрипторов

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

@addTagHelper *, WebOptimizer.Core

Шаблон

параметров в ASP.NET Core

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

IOptions<T>
. В табл. 31.6 кратко описан ряд версий интерфейса
IOptions
.

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

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

appsettings.json
:

{

"Logging": {

"MSSqlServer": {

"schema": "Logging",

"tableName": "SeriLogs",

"restrictedToMinimumLevel": "Warning"

}

},

"ApplicationName": "AutoLot.MVC",

"AllowedHosts": "*",

"DealerInfo": {

"DealerName": "Skimedic's Used Cars",

"City": "West Chester",

"State": "Ohio"

}

}

Далее понадобится создать модель представления для хранения информации об автодилере. Добавьте в каталог

Models
проекта
AutoLot.Mvc
новый файл класса по имени
DealerInfo.cs
со следующим содержимым:

namespace AutoLot.Mvc.Models

{

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<DealerInfo>(Configuration.GetSection(nameof(DealerInfo)));

Откройте файл

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

using Microsoft.Extensions.Options;

Затем модифицируйте метод

Index
, как продемонстрировано далее:

[Route("/")]

[Route("/[controller]")]

[Route("/[controller]/[action]")]

[HttpGet]

public IActionResult Index([FromServices] IOptionsMonitor<DealerInfo> dealerMonitor)

{

var vm = dealerMonitor.CurrentValue;

return View(vm);

}

Когда класс сконфигурирован в коллекции служб и добавлен в контейнер DI, его можно извлечь с использованием шаблона параметров. В рассматриваемом примере

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

Обновите представление

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

@model AutoLot.Mvc.Models.DealerInfo

@{

ViewData["Title"] = "Home Page";

}

<div class="text-center">

<h1 class="display-4">Welcome to @Model.DealerName</h1>

Поделиться:
Популярные книги

Метатель

Тарасов Ник
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель

Магия чистых душ

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Магия чистых душ

Барон Дубов

Карелин Сергей Витальевич
1. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов

#Бояръ-Аниме. Газлайтер. Том 11

Володин Григорий Григорьевич
11. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 11

Барон диктует правила

Ренгач Евгений
4. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон диктует правила

Попытка возврата. Тетралогия

Конюшевский Владислав Николаевич
Попытка возврата
Фантастика:
альтернативная история
9.26
рейтинг книги
Попытка возврата. Тетралогия

Долгий путь домой

Русич Антон
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
6.20
рейтинг книги
Долгий путь домой

Гардемарин Ее Величества. Инкарнация

Уленгов Юрий
1. Гардемарин ее величества
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Гардемарин Ее Величества. Инкарнация

Завод-3: назад в СССР

Гуров Валерий Александрович
3. Завод
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Завод-3: назад в СССР

Решала

Иванов Дмитрий
10. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Решала

Камень. Книга пятая

Минин Станислав
5. Камень
Фантастика:
боевая фантастика
6.43
рейтинг книги
Камень. Книга пятая

Отдельный танковый

Берг Александр Анатольевич
1. Антиблицкриг
Фантастика:
боевая фантастика
альтернативная история
5.00
рейтинг книги
Отдельный танковый

Метатель. Книга 3

Тарасов Ник
3. Метатель
Фантастика:
попаданцы
альтернативная история
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель. Книга 3

Боярышня Евдокия

Меллер Юлия Викторовна
3. Боярышня
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Боярышня Евдокия