2010-12-14 28 views
2

我有一個網站,基本上可以讓客戶建立了車用可配置的項目。用戶將選擇一個項目,並會提示他們挑選他們想要的第一選擇,他們會發送到第二步,他們挑選自己的第二個選擇,等什麼是處理多個自動重定向的正確方法?

的步數和選項的數量是可變的,因爲它們是由客戶定義的。通常該項目只有2-3個步驟和5-10個選項。但是,爲了讓客戶更快,如果給定步驟只有一個選項可用,它將自動選擇並且用戶將被髮送到下一步。

客戶端決定建立一個項目與10+步驟只用一個用於每個步驟的選擇。這導致整個過程自動選擇一切。 Firefox不喜歡這個,因爲它給出了錯誤

的Firefox已檢測到服務器 被重定向此 地址的請求的方式,永遠不會 完成。

(我沒有檢查IE或Chrome,但它可能會給出類似的錯誤)。

什麼是解決這個問題的最好方法是什麼?

眼下過程基本上

  1. 用戶挑選項目
  2. 用戶選取的選擇,如果有多個選項可用。否則,網站本身會執行第3步。
  3. POST到選項
  4. 重定向添加到購物車到Page.aspx?step=#
  5. 重複步驟2-4多次必要

有什麼變化,我可以對代碼或頁面,以便FireFox不認爲我處於無限循環?

回答

4

我感到驚訝,如果#是每次都不同,你得到無限重定向錯誤,但無論哪種方式,這似乎並不像最好的架構。基本上,如果代碼決定一個步驟可以自動完成,它會立即重定向到新的步驟編號的同一頁面?

爲什麼不讓你的代碼在沒有重定向的情況下執行操作,根據需要增加服務器代碼中的頁碼,並直接向他們顯示正確的步驟,而不必重定向?

無論是發生在您發表的每一步,我覺得你可以在代碼中很容易實現,而不必實際做了新的崗位。

1

我猜像這樣的工作:

    從查詢字符串到本地變量從數據庫中本地步變
  1. 傳遞如果數據僅包含

  2. 加載數據
  3. 閱讀步驟#一個選項然後:
    (3。數據1)店鋪選項
    (3.2)增加當地步變
    (3.3)轉到2

  4. 加載頁面第2步


請問你的代碼處理別人跳過選項並在Page.aspx?step = 1時將地址欄輸入Page.aspx?step = 10?

+0

該網站將進行檢查,以確保如果他們在步驟10,則步驟1到9已被標記爲完成。如果沒有,他們會回到第一個未完成的步驟。 – Brandon 2010-12-14 17:20:26

+0

在這種情況下,如果服務器的副本是主服務器,似乎在URL中包含頁面#就會變得複雜。 – Greg 2010-12-14 17:27:47

相關問題