У вас есть много вариантов для хранения значения переменной:
- состояние сеанса: Session ["status"] = A
- Состояние приложения: Приложение ["status"] = A
- кеш asp net: использование Cache.Add ()
- база данных: здесь я также буду хранить временные метки, чтобы отслеживать историческое состояние контроллера.
- локальный файл XML.
Все зависит от объема хранимых данных: данные сеанса являются локальными для текущего пользователя / сеанса и истекают через заданный тайм-аут (по умолчанию: 20 минут), приложение будет глобальным для всех ваших пользователей / сеансов и истекает когда вы перезапустите приложение (с помощью iis, iisreset, перекомпиляции ...), кэш будет глобальным и срок его действия истечет в зависимости от параметров вызова, база данных и xml будут глобальными и сохранят состояние.
В вашем случае я бы использовал базу данных или хранилище приложений, потому что микроконтроллер и пользователь живут в разных сеансах, а кэш приложения не является подходящим механизмом обмена сообщениями, в то время как Xml сам по себе создает некоторые проблемы (например, разрешения файловой системы, репликация данных. ..).
запись:
Application["status"] = A;
следующим образом:
int A = 0;
bool result = int.TryParse(Application["status"],out A);
Кстати: для анализа целого числа вы можете пропустить часть try / catch, выполнив следующее:
int A = 0;
bool result = int.TryParse(POST["status"],out A);
в этом случае, если не удастся проанализировать A, будет равно 0;