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

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

1 ... 403 404 405 406 407 ВПЕРЕД
Перейти на страницу:
class="p1">[HttpGet("{id?}")]

public async Task<IActionResult> Delete(int? id)

{

  var car = await GetOneCarAsync(id);

  if (car == null)

  {

    return NotFound();

  }

  return View(car);

}

[HttpPost("{id}")]

[ValidateAntiForgeryToken]

public async Task<IActionResult> Delete(int id, Car car)

{

  await _serviceWrapper.DeleteCarAsync(id,car);

  return RedirectToAction(nameof(Index));

}

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

В текущий момент внутри компонента представления MenuViewComponent применяется уровень доступа к данным и синхронная версия Invoke(). Внесите в класс следующие изменения:

using System.Linq;

using System.Threading.Tasks;

using AutoLot.Dal.Repos.Interfaces;

using AutoLot.Services.ApiWrapper;

using Microsoft.AspNetCore.Mvc;

using Microsoft.AspNetCore.Mvc.ViewComponents;

namespace AutoLot.Mvc.ViewComponents

{

  public class MenuViewComponent : ViewComponent

  {

    private readonly IApiServiceWrapper _serviceWrapper;

    public MenuViewComponent(IApiServiceWrapper serviceWrapper)

    {

      _serviceWrapper = serviceWrapper;

    }

    public async Task<IViewComponentResult> InvokeAsync()

    {

      var makes = await _serviceWrapper.GetMakesAsync();

      if (makes == null)

      {

        return new ContentViewComponentResult("Unable to get the makes");

      }

      return View("MenuView", makes);

    }

  }

}

Совместный запуск приложений AutoLot.Mvc и AutoLot.Api

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

На заметку! Вспомните, что приложения AutoLot.Mvc и AutoLot.Api сконфигурированы на воссоздание базы данных при каждом их запуске. Обязательно отключите воссоздание хотя бы в одном из приложений, иначе возникнет конфликт. Чтобы ускорить отладку, отключите воссоздание в обоих приложений при тестировании функциональности, которая не изменяет данные.

Использование Visual Studio

Вы можете сконфигурировать среду Visual Studio на запуск нескольких проектов одновременно. Щелкните правой кнопкой мыши на имени решения в окне Solution Explorer, выберите в контекстном меню пункт Select Startup Projects (Выбрать стартовые проекты) и установите действия для проектов AutoLot.Api и AutoLot.Mvc в Start (Запуск), как показано на рис. 31.11.

После нажатия клавиши <F5> (или щелчка на кнопке запуска с зеленой стрелкой) оба проекта запустятся. При этом возникает ряд сложностей. Первая сложность — среда Visual Studio запоминает последний профиль, который применялся для запуска приложения. Это значит, что если вы использовали для запуска AutoLot.Api веб-сервер IIS Express, то запуск обоих приложений приведет к запуску AutoLot.Api с применением IIS Express, поэтому порт в настройках служб окажется некорректным.

Проблему легко устранить. Либо измените порты в файле appsettings.development.json, либо запустите приложение под управлением Kestrel, прежде чем конфигурировать совместный запуск приложений.

Вторая сложность связана с синхронизацией. Оба проекта стартуют практически одновременно. Если вы сконфигурировали приложение AutoLot.Api на воссоздание базы данных при каждом его запуске, тогда она не будет готова для приложения AutoLot.Mvc, когда компонент представления запускается с целью построения меню. Проблему решит быстрое обновление браузера, отображающего AutoLot.Mvc (как только вы увидите пользовательский интерфейс Swagger в AutoLot.Api).

Использование командной строки

Откройте окно командной строки в каждом каталоге проекта и введите команду dotnet watch run. Это позволит управлять порядком и синхронизацией, а также гарантирует, что приложения выполняются с применением Kestrel, но не IIS. Информацию об отладке при запуске из командной строки ищите в главе 29.

Резюме

В настоящей главе вы завершили изучение ASP.NET Core, равно как и построение приложения AutoLot.Mvc. Процесс изучения начинался с исследования представлений, частичных представлений, а также шаблонов редактирования и отображения. Затем вы узнали о вспомогательных функциях дескрипторов, смешивающих разметку клиентской стороны с кодом серверной стороны.

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

Затем с использованием HTTPClientFactory и конфигурационной системы ASP.NET Core была создана оболочка службы, взаимодействующая с AutoLot.Api, которая применялась для создания компонента представления, отвечающего за построение динамической системы меню. После краткого обсуждения способов одновременной загрузки обоих приложений (AutoLot.Api и AutoLot.Mvc) была разработана основная часть приложения.

Разработка начиналась с создания контроллера CarsController и всех методов действий. Далее были добавлены специальные вспомогательные функции дескрипторов и в заключение созданы все представления, касающиеся записей Car. Конечно, был построен только один контроллер и его представления, но с помощью продемонстрированного шаблона можно создать контроллеры и представления для всех сущностей AutoLot.

Примечания

1

https://ru.wikipedia.org/wiki/Дoлгocpoчнaя_пoддepжкa_пpoгpaммнoгo_oбecпeчeния

1 ... 403 404 405 406 407 ВПЕРЕД
Перейти на страницу:

Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

Комментарии (0)