C# - ASP. NET MVC - преобразовать список объектов в список строк для использования в сеансе - PullRequest
1 голос
/ 18 февраля 2020

У меня есть этот напечатанный список:

IEnumerable<Resource> ResourceAuthorizedForLoggedUser= resourceAuthorizer.FindAll();

Сначала попробуйте это, но не сработало:

var authorizations= ResourceAuthorizedForLoggedUser.Select(x => x.Id).ToString();

И мне нужно поместить в эту сессию:

System.Web.HttpContext.Current.Session["Authorized_List"] = authorizations;

Чтобы получить доступ к этим данным в базовом контроллере

public class BaseController : Controller
{
   public static List<string> authorizations { get { return Getauthorizations(); } }

   private static List<string> Getauthorizations()
   {
      List<string> authorizationsList = (List<string>)System.Web.HttpContext.Current.Session["Authorized_List"];
      return authorizationsList != null && authorizationsList.Any() ? authorizationsList : new List<string>();
   }
}

И в конце я получаю следующую ошибку при Getauthorizations методе:

Невозможно преобразовать объект типа 'System.String' в тип 'System.Collections.Generi c .List`1 [System.String]'

Любые идеи о том, как я можно конвертировать этот список?

1 Ответ

2 голосов
/ 18 февраля 2020

Я бы написал ваш код следующим образом:

  1. Сначала вы получите коллекцию типа Resource:
 IEnumerable<Resource> ResourceAuthorizedForLoggedUser=
 resourceAuthorizer.FindAll();
Затем вы сохраняете список идентификаторов (я полагаю, что это строки)
 List<string> authorizations=
 ResourceAuthorizedForLoggedUser.Select(x=> x.Id).ToList();
Сохраните это в переменной сеанса:
 System.Web.HttpContext.Current.Session["Authorized_List"] =
 authorizations;
Прочтите это из сессии:
public class BaseController : Controller
     {
        public static List<string> authorizations { get { return Getauthorizations(); } }


   private static List<string> Getauthorizations()
   {
      List<string> authorizationsList = (List<string>)System.Web.HttpContext.Current.Session["Authorized_List"];
      return authorizationsList != null && authorizationsList.Any() ? authorizationsList : new List<string>();
   }
}`enter code here`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...