Применяем кортеж для передачи параметров в контроллер net core MVC.
Кортеж — это тип данных C# (появился в C# 7.0), который предоставляет краткий синтаксис для группирования нескольких элементов данных в упрощенную структуру. Кортежи позволяют сгруппировать и предоставить пользователю данные различных типов. Сегодня поговорим о том, как можно использовать кортежи в своих приложениях C#. Массивы комбинируют объекты одного типа, а кортежи (tuple) могут комбинировать объекты различных типов. Понятие кортежей происходит из языков функционального программирования, таких как F#, где они часто используются. С появлением .NET 4 кортежи стали доступны в .NET Framework для всех языков .NET. В .NET 4 определены восемь обобщенных классов Tuple и один статический класс Tuple, который служит фабрикой кортежей. Существуют различные обобщенные классы Tuple для поддержки различного количества элементов; например, Tuple содержит один элемент, Tuple — два элемента и т.д. Элементы кортежа могут быть доступны через свойства Item1, Item2 ... .
Существуют различные способы передачи данных из контроллера в представление:
- ViewData
- ViewBag
- Модель представления
Модель представления является во многих случаях более предпочтительным способом для передачи данных в представление. Для передачи данных в представление используется одна из версий метода View. На просторах интернета чаще всего встречаются классические типы данных. Для передачи сложных типов рекомендуют использовать структуры и кассы. Но не всегда удобно для передачи дополнительного параметра создавать отдельный класс. Вот и возник вопрос, почему не использовать кортежи.
Создаем новый проект MVC.
В home контроллере изменяем.
public IActionResult Index()
{
return View("Index", Tuple.Create(Guid.NewGuid(), "Михаил", true, false));
}
В представлении index добавляем.
@model Tuple<Guid, string, bool, bool>
<div class="text-center">
<h1 class="display-4">Welcome @Model.Item2</h1>
@if (Model.Item3)
{
<h2>@Model.Item1</h2>
}
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
Проверяем.
Заметим, что параметрами кортежа могут быть любые типы данных, в том числе и списки, перечисления, классы, структуры и т.д..
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.