Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На заметку! При обновлении своих представлений с целью добавления ссылок на пакетированные файлы среда Visual Studio сообщит о том, что они не существуют. Не переживайте, все будет визуализироваться из кеша.
Обновление _Viewlmports.cshtml
На финальном шаге в систему добавляются вспомогательные функции дескрипторов WebOptimizer. Они работают точно так же, как вспомогательные функции дескрипторов
asp-append-version_ViewImports.cshtml@addTagHelper *, WebOptimizer.CoreШаблон параметров в ASP.NET Core
Шаблон параметров обеспечивает доступ сконфигурированных классов настроек к другим классам через внедрение зависимостей. Конфигурационные классы могут быть внедрены в другой класс с применением одной их версий
IOptions<T>IOptions
Добавление информации об автодилере
На автомобильном сайте должна отображаться информация об автодилере, которая обязана быть настраиваемой без необходимости в повторном развертывании всего сайта, чего можно достичь с использованием шаблона параметров. Начните с добавления информации об автодилере в файл
appsettings.json{ "Logging": { "MSSqlServer": { "schema": "Logging", "tableName": "SeriLogs", "restrictedToMinimumLevel": "Warning" } }, "ApplicationName": "AutoLot.MVC", "AllowedHosts": "*",<b> "DealerInfo": {</b><b> "DealerName": "Skimedic's Used Cars",</b><b> "City": "West Chester",</b><b> "State": "Ohio"</b><b> }</b>}Далее понадобится создать модель представления для хранения информации об автодилере. Добавьте в каталог
ModelsAutoLot.MvcDealerInfo.csnamespace AutoLot.Mvc.Models{ public class DealerInfo { public string DealerName { get; set; } public string City { get; set; } public string State { get; set; } }}На заметку! Конфигурируемый класс должен иметь открытый конструктор без параметров и не быть абстрактным. Стандартные значения можно устанавливать в свойствах класса.
Метод
Configure()IServiceCollectionStartup.csusingusing AutoLot.Mvc.Models;Перейдите к методу
ConfigureServices()services.Configure<DealerInfo>(Configuration.GetSection(nameof(DealerInfo)));Откройте файл
HomeController.csusingusing Microsoft.Extensions.Options;Затем модифицируйте метод
Index()[Route("/")][Route("/[controller]")][Route("/[controller]/[action]")][HttpGet]public IActionResult Index<b>([FromServices] IOptionsMonitor<DealerInfo> dealerMonitor)</b><b>{</b><b> var vm = dealerMonitor.CurrentValue;</b><b> return View(vm);</b>}Когда класс сконфигурирован в коллекции служб и добавлен в контейнер DI, его можно извлечь с использованием шаблона параметров. В рассматриваемом примере
OptionsMonitorDealerInfoCurrentValueDealerInfoDealerInfoIndex.cshtmlОбновите представление
Index.cshtmlViewsHomeDealerInfo@model AutoLot.Mvc.Models.DealerInfo