跳過頁面防止用戶我有一個數據輸入表格,我已經碎裂開到5頁,我想確保用戶去通過每一次的正確順序的頁面。導航的設置使其能夠正確地通過它,包括麪包屑返回並更改以前的頁面。但是,我想確保,如果不先瀏覽較早的頁面,它們就不會到達較晚的頁面(即,通過頁面A和B,然後通過直接輸入URL直接跳到D,或者使用D開始書籤)。從一個ASP.NET表單
我已經做了一些嘗試,以防止這種情況,我最晚一班是這一點,這檢查具體到每一個頁面需要會話變量:
public static string CheckForPageSkipping()
{
var redirectTo = "";
if (HttpContext.Current.Session["TestDate"] == null) redirectTo = "~/Auth/SignOff.aspx";
if (HttpContext.Current.Session["Repairs"] == null) redirectTo = "~/Auth/RepairNotes.aspx";
if (HttpContext.Current.Session["MeterNum"] == null) redirectTo = "~/Auth/TestResults.aspx";
if (HttpContext.Current.Session["PremiseOwner"] == null) redirectTo = "~/Auth/PremiseInfo.aspx";
return redirectTo;
}
我每次Page_Load
事件期間調用此和重定向到如果頁面不是他們所在的頁面,則返回頁面。這幾乎奏效了,直到我意識到它阻止了你向後導航(它總是會將你發回到你尚未完成的最新頁面)。我確信我可以湊齊一些東西來完成這項工作,但我想看看是否有更好的方法來做到這一點。內置於ASP.NET的東西,或者某人過去構建的更優雅的東西。
我在Google和StackOverflow上的搜索嘗試都沒有得到有用的結果。也許我使用的是錯誤的術語,但主要是我在這裏寫的東西(現在頂部提出的建議也沒有幫助)。
你有沒有想過使用'Server.Transfer'在頁面之間轉換?網址沒有變化,你可以加載你喜歡的任何頁面。 –
我沒有想到這一點(不知道我知道這個功能)。看起來很有希望。我將不得不再看一看。謝謝! – techturtle
好的,也許我沒有實現它,但是當我用'Server.Transfer'替換了我的'Response.Redirect'語句時,它似乎首先起作用,但是接下來發生的事情是所有頁面只顯示一個頁面在地址欄後面。所以從頁面A移動到頁面B仍然在地址欄中顯示A,但是當從B移動到C時,它在地址欄中顯示B. – techturtle