Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На заметку! Исходный код, рассматриваемый в этой главе, находится в папке
Chapter_31
Введение в представления ASP.NET Core
При построении служб ASP.NET Core были задействованы только части "М " (модели) и "С" (контроллеры ) паттерна МУС. Пользовательский интерфейс создается с применением части "V", т.е. представлений паттерна МУС. Представления строятся с использованием кода HTML, JavaScript, CSS и Razor. Они необязательно имеют страницу базовой компоновки и визуализируются из метода действия контроллера или компонента представления. Если вы имели дело с классической инфраструктурой ASP.NET МУС, то все должно выглядеть знакомым.
Экземпляры класса ViewResult и методы действий
Как кратко упоминалось в главе 29, объекты результатов
ViewResult
PartialView
ActionResult
Controller
PartialViewResult
ViewResult
По соглашению, принятому в ASP.NET Core (что было и в ASP.NET МУС), экземпляр View или PartialView визуализирует файл
*.cshtml
Controller
Shared
Views
Например, следующий код будет визуализировать представление
SampleAction.cshtml
ViewsSample
ViewsShared
[Route("[controller]/[action]")]
public class SampleController: Controller
{
public ActionResult SampleAction()
{
return View();
}
}
На заметку! Первым производится поиск в каталоге с именем контроллера. Если представление там не обнаружено, то поиск выполняется в каталоге
Shared
Чтобы визуализировать представление с именем, которое отличается от имени метода действия, передавайте имя файла (без расширения
cshtml
CustomViewName.cshtml
public ActionResult SampleAction()
{
return View("CustomViewName");
}
Последние две перегруженные версии предназначены для передачи объекта данных, который становится моделью для представления. В первом примере применяется стандартное имя представления, а во втором указывается другое имя представления:
public ActionResult SampleAction()
{
var sampleModel = new SampleActionViewModel();
return View(sampleModel);
}
public ActionResult SampleAction()
{
var sampleModel = new SampleActionViewModel();
return View("CustomViewName",sampleModel);
}
В следующем разделе подробно рассматривается механизм визуализации Razor с использованием представления, которое визуализируется из метода действия по имени
RazorSyntax()
HomeController
Car
CarRepo
Car
Откройте
HomeController
Controllers
AutoLot.Mvc
using
using AutoLot.Dal.Repos.Interfaces;
Затем добавьте в контроллер метод
Razorsyntax()
[HttpGet]
public IActionResult RazorSyntax([FromServices] ICarRepo carRepo)
{
var car = carRepo.Find(1);
return View(car);
}
Метод действия декорируется атрибутом
HTTPGet
/Home/RazorSyntax
GET
FromServices
ICarRepo
ICarRepo
Car
ViewResuit
View()
RazorSyntax.cshtml
ViewsHome
ViewsShared