Я пытаюсь получить словарь из состояния просмотра. Но я получаю сообщение об ошибке, что он не помечен как сериализованный.
var groupByCountDictionary = from supplier in supplierDirectoryList
group supplier by supplier.ProductCategory into grp
select new
{
groupName = grp.Key,
count = grp.Select(x => x.ProductCategory).Count()
};
ViewState["GroupbyCount"] = groupByCountDictionary;
Dictionary<string,int> groupByDictionary = (Dictionary<string,int>) ViewState["GroupbyCount"];
Затем с помощью другого метода после отправки я пытаюсь получить словарь из состояния просмотра, как указано выше, что приводит к ошибке.
1 ответ
Из вашего кода groupByCountDictionary не является словарем, это IEnumerable<anonymous_type>
. Вы можете переписать свой LINQ-код, чтобы использовать метод .ToDictionary(...)
, который вернет ожидаемый объект.
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.
IEnumerable<anonymous_type>
наDictionary<string,int>