none
Выполнение функции при загрузке страницы RRS feed

  • Вопрос

  • Здравствуйте. Есть поле ввода, есть кнопка. Ввожу в поле текст, жму кнопку, текст записывается в базу, поле очищается. Но при обновлении страницы (браузерной кнопочкой) этот же самый текст записывается в БД ещё раз. И так каждый раз при обновлении страницы. Как избавиться от этого?

    Вот код:

    namespace Opros
    {
        public partial class AddTema : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            protected void Button1_Click(object sender, EventArgs e)
            {
                if (TextBox1.Text.Length <1) return;
                OprosDataContext op = new OprosDataContext();
                TemaVoprosa tv = new TemaVoprosa
                {
                    Tematika = TextBox1.Text
                };
                op.TemaVoprosa.InsertOnSubmit(tv);
                op.SubmitChanges();
                TextBox1.Text = "";
                ListBox1.DataBind();
            }
        }
    }



    • Изменено Boguyang 17 декабря 2012 г. 17:50
    17 декабря 2012 г. 17:50

Ответы

  • Да, это один из древних подводных камней. Посмотрите статью по этому поводу.
    17 декабря 2012 г. 18:30
    Модератор
  • Помимо того, что указал коллега Yatajga, можно посмотреть еще одну парадигму программирования вэб форм без дубликатов сабмита, называемую

    PRG : http://en.wikipedia.org/wiki/Post/Redirect/Get

    Плюсы: Будет работать даже с выключенным javascript

    Минусы: Порой неинтуитивные переходы для пользователей, и "лишняя" програмная логика которая может не вписываться в бизнес структуру проекта.

    Стандартные средства asp.net, к сожалению, данную проблему по умолчанию никак решить не помогают.


    18 декабря 2012 г. 4:32

Все ответы

  • Да, это один из древних подводных камней. Посмотрите статью по этому поводу.
    17 декабря 2012 г. 18:30
    Модератор
  • Помимо того, что указал коллега Yatajga, можно посмотреть еще одну парадигму программирования вэб форм без дубликатов сабмита, называемую

    PRG : http://en.wikipedia.org/wiki/Post/Redirect/Get

    Плюсы: Будет работать даже с выключенным javascript

    Минусы: Порой неинтуитивные переходы для пользователей, и "лишняя" програмная логика которая может не вписываться в бизнес структуру проекта.

    Стандартные средства asp.net, к сожалению, данную проблему по умолчанию никак решить не помогают.


    18 декабря 2012 г. 4:32
  • Привет.

    Пожалуйста, не забывайте отмечать ответ или ответы, являющиеся решением проблемы.

    Спасибо.


    Для связи [mail]

    20 декабря 2012 г. 10:40
    Модератор