Как получить значения в сеансе объекта словаря в JavaScript - PullRequest
0 голосов
/ 13 февраля 2019

Я сохраняю набор словарных записей в значениях словаря, как указано ниже в методе моего действия

[HttpPost]
    public bool ValidateCategory(string value, string category, string attribute, string attrbuteType, int fieldType)
    {
        Structure structure = (Structure)HttpContext.Session["Return-Source-Structure"];
        bool isValid = false;
        string ValidateMessage = "";

        try
        {
            Category oCategory = new Category();
            oCategory.OrgCode = structure.OrgCode;
            oCategory.SiteCode = structure.SiteCode;
            oCategory.ClientCode = structure.ClientCode;
            oCategory.StructureCode = structure.Code;

            oCategory._Category = category;
            oCategory.FieldCode = attribute;
            switch (fieldType)
            {
                case 1:
                    switch (attrbuteType)
                    {
                        case "DATE":
                            if (value != null)
                            {
                                TimeZone localZone = TimeZone.CurrentTimeZone;

                                DateTime dateTime;
                                try
                                {
                                    //bool daylightTime = localZone.IsDaylightSavingTime(DateTime.ParseExact(value, "ddd MMM dd yyyy HH:mm:ss 'GMT+1100 (Australian Eastern Daylight Time)'", CultureInfo.InvariantCulture));
                                   }
                                    dateTime = DateTime.ParseExact(value, "ddd MMM dd yyyy HH:mm:ss 'GMT+1100 (Australian Eastern Daylight Time)'", CultureInfo.InvariantCulture);
                                    oCategory.Value = dateTime.ToString();
                                }
                                catch
                                {
                                    dateTime = DateTime.ParseExact(value, "ddd MMM dd yyyy HH:mm:ss 'GMT+1000 (Australian Eastern Standard Time)'", CultureInfo.InvariantCulture);
                                    oCategory.Value = dateTime.ToString();
                                }                                   

                            }
                            break;
                        default:
                            oCategory.Value = value;
                            break;
                    }
                    break;
                case 2:
                    oCategory.Value = value;
                    break;

            }               

            CategoryRepository categoryRepository = new CategoryRepository(oCategory);

            if (categoryRepository.ValidateCategory(User.Identity.Name, out ValidateMessage))
            {                    
                isValid = true;
            }
            else
            {
                isValid = false;
            }
        }
        catch (Exception e) { isValid = false; }
        HttpContext.Session["ValidateMessage"] = ValidateMessage;


        dict[attribute] = ValidateMessage;           
        HttpContext.Session["attributeMessageDictionary"] = dict;
        return isValid

мое определение словаря определено внутри контроллера следующим образом:

  private static Dictionary<string, string> dict = new Dictionary<string, string>();

Сессия ввода словарявозвращено методом действия:

Мой метод действия сеанса

    [HttpGet]
    public Dictionary<string,string> getDictionaryObjet(string key)
    {
        return (Dictionary<string, string>)Session[key];
    }

У меня проблемы с удалением возвращенного System.Collections.Generic.KeyValuePair с использованием кода Javascript.Я получил это с помощью метода Ajax, как метод действия выше, и в результате я получаю данные, как показано на рисунке.

Выше приведены мои результаты в окне просмотра VS отладчика. Мне нужно получить значение всего в словаре, используя Javascript.

...