Как проверить и преобразовать значение IEnumerable для отображения в представлении?

#c# #asp.net-mvc #list #ienumerable

#c# #asp.net-mvc #Список #ienumerable

Вопрос:

Я получаю данные из БД в IEnumerable и показываю в виде списка в представлении ASP.Net MVC. Я хочу взять определенный столбец, который содержит значения что-то вроде «A» для активного, «D» для деактивированного и т.д. Итак, я хочу преобразовать эти символы в правильную строку для отображения в представлении. Как это сделать? Я ценю любую помощь.

 public string GetStatusPagamento(int fileCodigo)
{
  var statusPgto = _context.GetFileByFileCode(fileCodigo).Select(s => 
   s.StatusPagamento).FirstOrDefault();

  #region switch pagto
  switch (statusPgto.ToString())
  {
    case "A":
      return "Ativo";

    case "D":
      return "Ativo";

    case "E":
      return "Cancelado";

    case "M":
      return "Reembolsado";

    case "R":
      return "Ativo";

    case "X":
      return "Cancelado";

    default:
      return "Indefinido";
  } 
  #endregion
}
 

Предполагалось, что вместо символа в представлении будет отображаться строка.

Ответ №1:

Решение, которое я нашел, состояло в том, чтобы создать в моей модели еще один атрибут под названием «SwitchStatusPagto», который создает случай переключения состояний, и я вызываю этот атрибут непосредственно в своем представлении.

  public string SwitchStatusPagto
    {
      get
      {
        if (!string.IsNullOrEmpty(StatusPagto))
        {
          switch (StatusPagto)
          {
            case "A":
            case "D":
            case "R":
              return "Ativo";
            case "E":
            case "X":
              return "Cancelado";
            case "M":
              return "Reembolsado";
            default:
              return StatusPagto;
          }
        }
        return string.Empty;
      }
    }

<td>@Html.DisplayFor(fr => itemRequisicao.SwitchStatusPagto)</td>
 

Примечание: «возвращаемая строка.Пустой» был необходим, чтобы избежать исключения нулевой ссылки, если данные равны нулю.