Использование одного и того же класса для хранения данных из нескольких прогонов функции - PullRequest
0 голосов
/ 29 сентября 2019

В моем проекте у меня есть метод ajax, который запускает функцию несколько раз (все один и тот же запуск).Например, если пользователь нажимает кнопку, он запускает Ajax и функция получает данные в течение 10 секунд.После этого пользователь может снова нажать эту кнопку, и это снова вызовет метод Ajax и получит дополнительные данные за 10 и так далее.При каждом запуске мне нужно как-то хранить эти данные, а в конце всех прогонов я буду комбинировать и хранить в своей БД.

Моя проблема в том, что если я создаю класс со всеми средами выполнения, каждый раз, когда я вхожу в эту функцию, я повторно инициализирую класс, теряя мои предыдущие данные.Таким образом, моя идея на данный момент выглядит примерно так:

Я вызываю функцию следующим образом: Сторона переднего плана:

function ReadsSerial() {
        $.ajax({
            url: "/Home/ReadsSerial",
            type: 'POST',
            data: { sintraining: gTrained },
            success: function (result) {
                alert(result.name);
            },
            error: function () {
                alert("error");
            }
        });
        return false;
};

И на моем конце есть функция, подобная этой:

[HttpPost]
        public ActionResult ReadsSerial(string sintraining)
        {
            try
            {
                sintraining = Int32.Parse(sintraining);
            }
            catch (FormatException)
            {
                Console.WriteLine($"Unable to parse '{sintraining}'");
            }

                if (sintraining == 0)
                {
                    // Call the constructor that has no parameters.
                    HandGesturesStorage0 handGesturesStorage = new HandGesturesStorage0();
                    handGesturesStorage.HandGesture0 = all;
                }
                if (sintraining == 1)
                {
                    HandGesturesStorage1 handGesturesStorage = new HandGesturesStorage1();
                    handGesturesStorage.HandGesture1 = all;
                }
                if (sintraining == 2)
                {
                    HandGesturesStorage2 handGesturesStorage = new HandGesturesStorage2();
                    handGesturesStorage.HandGesture2 = all;
                }

И мои занятия такие:

public class HandGesturesStorage0
{
    public string HandGesture0 { get; set; }
}

public class HandGesturesStorage1
{
    public string HandGesture1 { get; set; }
}

public class HandGesturesStorage2
{
    public string HandGesture2 { get; set; }
}

Но я чувствую, что это должно быть лучше!Если у меня будет 10 пробежек, мне нужно будет создать 10 классов и 10 классов.Есть идеи?

1 Ответ

0 голосов
/ 29 сентября 2019
    static List<HandGesturesStorage> myStogae;

    [HttpPost]
    public ActionResult ReadsSerial(string sintraining)
    {
        if (myStogae == null)
        {
            myStogae = new List<HandGesturesStorage>();
        }

        int st;

        try
        {
            st = Int32.Parse(sintraining);
            myStogae.Add(new HandGesturesStorage(sintraining));
        }
        catch (FormatException)
        {
            Console.WriteLine("Unable to parse '{sintraining}'");
        }
    }

    public class HandGesturesStorage
    {
        public string HandGesture { get; set; }

        public HandGesturesStorage(string sintraining)
        {
            this.HandGesture = sintraining;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...