2009-09-03 65 views
1

我們仍然在.NET 1.1中跟蹤工作流程/頁面流量/用戶流程管理的最佳方式 - ASP.NET

我有一個小應用程序大約15頁。工作流程不像第1步,第2步那樣簡單。但它非常隨意,用戶可以從第1步跳到第5步或非常隨機。不僅用戶可以跳轉,而且由於一些業務規則,我們需要將用戶放在相應的步驟x中。

我想知道的是如何保持這些跟蹤容易。我的意思是,如果我想在步驟1之後將用戶發送到步驟3,並且用戶知道步驟7的URL,他不應該去那裏,他應該去那裏,我告訴他去。我的意思是他應該重定向到第3步。

有意義嗎?

我想到的想法是使用會話變量來跟蹤用戶的下一頁。那麼有沒有更好的辦法?

+0

有點煩人,雖然不能去你想去的地方,你不同意嗎? – PatrikAkerstrand 2009-09-03 16:06:14

+2

仍然在.NET 1.1中!!?!你有我的同情! – JonnyD 2009-09-03 16:06:25

+0

他沒有我的同情心!他不必像我一樣把他的頭髮從1.1升級到2.0! – 2009-09-03 16:28:25

回答

1

會話將是我從你的描述中可以收集到的正確方法。會話用於跟蹤請求之間的臨時數據,例如關於用戶的這種情況。

+0

+ 1爲最簡單的解決方案 – David 2009-09-03 17:36:00

0

如果您使用的是較新版本的Framework,我會推薦使用Wizard控件。

但是,當我們還在1.1上時,我的情況與您的情況類似,我所做的基本上都是用我自己的Wizard控件。這有點「黑客」,但這是我在當時最好的。我不知道是否有人會提出一個更好的建議(我相信有更好的,不那麼醜陋的方式來完成這一點),但這裏是我們如何處理它:

我們所做的是在不同的頁面中有不同的步驟,我們把它們放在不同的ASP:面板控件在一個頁面上。我們將面板命名爲「PanelStep1」,「PanelStep2」等。

無論如何,我們都會在隱藏窗體字段中跟蹤當前索引,並根據該值設置可見面板。

這種方法很醜陋,但它可以解決禁止用戶導航下一步頁面的問題(通過將步驟全部放在一個頁面中),還允許您控制當前索引(通過設置隱藏表單字段的值用於設置索引所需的任何事件)。它使索引不在URL中,等等。

它還提供了在一個頁面中獲得所有收集信息的好處。我不知道你是將信息從一個步驟傳遞到另一個步驟,還是更新一些信息,如果每個頁面上的數據庫中有信息等,但是如果你想一次完成,這將是一個選擇。

+0

我甚至無法想象這樣做。想象15個aspx頁面代碼+ 15頁代碼+代碼+ peter blum控制aspx上的代碼..上帝你所說的單個頁面在aspx和7000行代碼後面會有大約7000行..而btw ..我需要以支持它;)..! – 2009-09-03 17:01:48

+0

是的,我認爲有15頁這將是一個不好的選擇。會話可能會更容易一些。然而,我很好奇,首先需要什麼樣的應用才能達到這種複雜程度 – David 2009-09-03 17:11:41

0

另一個選擇是從Page類繼承一個新的基本頁面,並將代碼強制執行正確的工作流步驟(或者更好地,在您從那裏調用的業務邏輯類庫中)。然後讓你的每一步都繼承這個頁面而不是普通的基本頁面。