Использование ValueTuple возвращает Item1, Item2, почему? - PullRequest
0 голосов
/ 11 ноября 2019

Следующий API возвращается в Postmen и клиенту item1, item2 Пока я использую ValueTuple для изменения имен (имена не так важны, но я не могу вернуть item1, item2)

public async Task<(List<CategoryFilterResponseDTO> categoryFilters, string MetaDataDescription)> GetCategoryFilterPage([FromBody]categoryFilterRequestDTO categoryFilterRequest)
{
    var logItem = new LogDTO();
    var result = await _service.GetCategoryFilterPage(categoryFilterRequest);

    try
    {
        OnStart(logItem, new object[] { categoryFilterRequest });
        var categoryFilters = result.categoryFilters;
        var MetaDataDescription = result.MetaDataDescription;


        return (categoryFilters: categoryFilters, MetaDataDescription: MetaDataDescription);

    }
}

метод:

public async Task<(List<CategoryFilterResponseDTO> categoryFilters, string MetaDataDescription)> GetCategoryFilterPage(categoryFilterRequestDTO categoryFilterRequestDTO)
{
    List<CategoryFilterResponseDTO> categoryFilter = new List<CategoryFilterResponseDTO>();
    List<FavoriteDTO> isFavorite = null;
    string MetaDataDescription = "";
    (List<FilterSortDTO<FlatSearchCategory>>, int) searchCategory = await _clubRepo.CategoryFilterPage(categoryFilterRequestDTO);//BranchesCount
    if (searchCategory.Item2 == 0)
    {
        MetaDataDescription = GetCategoryDetails(categoryFilterRequestDTO.CategoryFirstFatherID.Value).CategoryName;
        return (categoryFilters: categoryFilter, MetaDataDescription: MetaDataDescription);
    }

Ответы [ 2 ]

2 голосов
/ 11 ноября 2019

Вы можете изменить свой возврат на следующее:

return Ok(new
{
    categoryFilters = categoryFilter,
    metaDataDescription = MetaDataDescription
});

Вам также нужно будет изменить тип возврата на ActionResult или аналогичный.

0 голосов
/ 11 ноября 2019

Поскольку это имя полей в ValueTuple<,>.

Имена, присвоенные значениям, доступны только для исходного кода.

...