,我要面對現在大的問題。我也不知道答案,我會想象一個人會修改Request.Form
數據來刪除事件,但我不知道如何幹淨地做到這一點。
作爲一種解決方法,我在Context.Items
中使用了一個警戒標誌,它也被保留下來。
protected void rbThemes_SelectedIndexChanged(object sender, EventArgs e)
{
if (IsSecondPass()) return;
Server.Transfer(Request.FilePath, true);
}
private bool IsSecondPass()
{
const string key = "SECOND_PASS_GUARD";
if (Context.Items[key] == null)
{
Context.Items[key] = new object();
return false;
}
else
{
Context.Items.Remove(key);
return true;
}
}
我不會推薦這個,但它的工作原理。 (方法的名字也很差選擇,因爲它的副作用。)
也有一個較短的方式:
protected void rbThemes_SelectedIndexChanged(object sender, EventArgs e)
{
if (PreviousPage != null) return;
Server.Transfer(Request.FilePath, true);
}
要注意的是它不具有任何不想要的效果,如果你做其他類型的交叉頁面發佈(儘管我不知道爲什麼或如何從另一個頁面發佈SelectedIndexChanged
事件)。仍然不推薦。
注意:如果要編寫母版頁,則需要在母版頁類(Page.PreviousPage
)上的Page
屬性中引用PreviousPage
。
來源
2014-06-23 09:00:29
tne