Каков лучший способ отличить "Refresh Post" или "Real Post Back"? - PullRequest
2 голосов
/ 10 февраля 2011

Как лучше всего различать "Обновить сообщение" или "Реальное сообщение назад".

Это то, что мне нужно для достижения

protected void Button1_Click(object sender, EventArgs e)
{

if(PostBack && !Refresh)
{
//Do Something
}

}

Ответы [ 4 ]

3 голосов
/ 10 февраля 2011

Я обычно делаю Response.Redirect на ту же страницу в событии обратной передачи. Таким образом, все мои Page.IsPostBack настоящие постбэки, а не обновления

1 голос
/ 10 февраля 2011

Пример рабочего кода для принятого ответа

Добавить эту строку в конструктор

  <input type="hidden" runat="server" id="Tics1" value="GGG" />

Добавить следующие строки в коде

 public partial class WebForm1 : System.Web.UI.Page
{

    long tics = DateTime.Now.Ticks;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            this.Tics1.Value = tics.ToString();
            Session["Tics"] = tics;
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Session["Tics"] != null && Request["Tics1"] != null)
        {
            if (Session["Tics"].ToString().Equals((Request["Tics1"].ToString())))
            {
                Response.Write("Postback");
            }
            else
            {
                Response.Write("Refresh");
            }
        }
        this.Tics1.Value = tics.ToString();
        Session["Tics"] = tics;        
    }
}
1 голос
/ 10 февраля 2011

вы можете попробовать как

protected void Button1_Click(object sender, EventArgs e)
{
    //your code of Click event
    //..............
    //...............
    // and then add this statement at the end
    Response.Redirect(Request.RawUrl); // Can you test and let me know your findings
}
1 голос
/ 10 февраля 2011

Вы можете установить скрытый ввод с одноразовым значением, генерируемым случайным образом каждый раз при загрузке формы (но не при обратной передаче), а затем проверить, было ли получено одноразовое значение дважды. Если его отправили во второй раз, это было обновление.

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