как хранить переменную post, чтобы я мог вызывать переменную в любое время в ASP.NET - PullRequest
0 голосов
/ 18 июня 2011

Я занимаюсь веб-разработкой для своего финального проекта, и я новичок в ASP.NET и на этом форуме. спасибо всем, кто мне помогает.

вопрос в том ... Пример у меня есть 2 страницы.

page1.aspx.cs (эта страница для получения переменной от микроконтроллера через сетевой модуль) пример микроконтроллера отправляет переменную "status" = 1

    protected void Page_Load(object sender, EventArgs e)
    {
        NameValueCollection POST = Request.Form;
        int STATUS;
        int responcode;

        try
        {
            A = int.Parse(POST["status"]);
        }
        catch (Exception)
        {
            status = 0;            
        }

        if (A == 1)
        {
            responcode = 200;   

            //when A = 1, i want to store A value to (buffer on something <-- this what i want to ask)).
            so i can call the value anytime in page2.               
        }
        else                
        {
            responcode = 400;              
        }

        Response.StatusCode = responcode;
    }
}

}

page2.aspx (на странице 2 есть кнопка и текстовое поле)

protected void Button3_Click(object sender, EventArgs e)
    {
      /*when this button click,
     i want to show A value from page1
      */
    }

Ответы [ 4 ]

1 голос
/ 18 июня 2011

У вас есть много вариантов для хранения значения переменной:

  1. состояние сеанса: Session ["status"] = A
  2. Состояние приложения: Приложение ["status"] = A
  3. кеш asp net: использование Cache.Add ()
  4. база данных: здесь я также буду хранить временные метки, чтобы отслеживать историческое состояние контроллера.
  5. локальный файл 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;

1 голос
/ 18 июня 2011

Вы можете использовать Сеанс

    NameValueCollection POST = Request.Form;
    int STATUS;
    int responcode;
    try
    {

        A = int.Parse(POST["status"]);

    }

    catch (Exception)
    {

        status = 0;

    }


    if (A == 1)
    {
        responcode = 200;   

        //when A = 1, i want to store A value to (buffer on something <-- this what i want to ask)).

        Session["Avalie"] = A;
        so i can call the value anytime in page2.


    }

    else

    {
        responcode = 400;              
    }

    Response.StatusCode = responcode;
}

}

, а затем на странице 2

protected void Button3_Click(object sender, EventArgs e)
{
  /*when this button click,
 i want to show A value from page1
  */

 if(!String.IsNullOrEmpty( Session["Avalie"] ))
 int Aval = int.Parse(Session["Avalie"]);

}
0 голосов
/ 18 июня 2011

Использование crosspagepostback для передачи значений с одной страницы на другую (введено в asp.net 2.0)

0 голосов
/ 18 июня 2011

Один из вариантов - присвоить значение статической переменной на первой странице.
См. Статические классы и члены статических классов (Руководство по программированию в C #)

Другой вариант - использовать переменные состояния в качестве переменных состояния сеанса или переменных приложения.
См. Обзор состояния сеанса ASP.NET и Обзор состояния приложения ASP.NET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...