2014-09-19 51 views
3

我被給了一個任務來解決別人編寫的某個舊項目的錯誤。
該項目是在IIS上部署的ASP.Net。ASP.Net窗體的字段只在客戶的環境中爲空

方案

  1. 打開申請表格。
  2. 填寫個人信息。
  3. 單擊「添加項目」按鈕打開項目選擇窗口。
  4. 選擇項目並關閉項目選擇窗口。

預計: 早在申請表,現在正顯示出兩個個人信息,在 步驟2中輸入而現在,同樣的請求頁面,選擇的項目,在步驟4中選擇的名單上。

實際: 早在申請表,不顯示個人資料,並只顯示 選定的項目。


從我瞭解到,申請表上的每一個領域是代碼:

  1. 保存到會話(例如的onChange在JavaScript調用代碼隱藏保存 功能)
  2. 從Load session_Page_Load

我想以上是需要作爲ViewState的替代機制, ,因爲在上述scena對於表單字段(例如個人信息 )需要使用多個頁面。 (其他窗口 的開放新增項目)

而且從代碼,我得知項目「添加項目」窗口中添加:

  1. 保存到網頁會話「添加項目」
  2. 在頁面的Page_Load從會話加載‘請求’

,而不是該項目的工作在在客戶的辦公室現在我們複製 項目,並部署回在我們的辦公室 - 唯一的問題沒有w是 正常工作 - 也就是說,個人詳細信息和所選 項目的列表均按預期顯示。

我想任何建議...什麼可能是這樣的 行爲的原因?
另外萬一我無法在我的環境中重新創建問題,我應該在客戶辦公室檢查/調試什麼?

+1

我會檢查的第一件事是您的客戶端沒有禁用Cookie。 – Paddy 2014-09-22 11:41:33

+1

客戶環境負載是否平衡或以其他方式設置,以便有多個服務器處理客戶端請求?如果是這樣,是否保持客戶關係? – user1429080 2014-09-22 12:08:48

+0

@Paddy,如果我禁用cookies,那麼在添加一個項目後,所有表單的字段都是空的。但是,在客戶的環境中檢查cookie政策會很有趣。謝謝! – kroiz 2014-09-28 06:56:12

回答

1

......這種行爲的原因是什麼?

根據你的症狀,這聽起來像可以是發生在服務器依靠客戶端腳本(設置從服務器的響應下發的形式值)具有相關性(如jQuery的)可能不被受支持的(可能過時的)正在使用的瀏覽器。

...我應該在客戶辦公室檢查/調試什麼?

以下是我收集應該是發生在客戶端的形式打開後:

  1. 用戶在表單控件(一個或多個)值。 (「個人詳細信息」)
  2. 客戶端事件處理程序向服務器發送異步請求(無回叫),以便將表單值保存到用戶的會話中。
  3. 用戶單擊按鈕。 (「添加項目」)
  4. 客戶端事件處理程序將打開一個新窗口,該窗口將請求發送到服務器以進行「項目選擇」頁面。
  5. 從服務器接收到響應,客戶端上顯示「項目選擇」頁面。
  6. 用戶選擇控件的值。 (「項目選擇」)
  7. 用戶點擊一個按鈕(「關閉窗口」)
  8. 客戶端事件處理程序:
    • 發送一個請求(用「項目的選擇」的值)代表前一窗口的到「個人詳細信息」頁面的服務器。
    • 關閉當前窗口。
  9. 上一窗口收到響應,頁面完全重新加載,並且所有表單數據仍然存在(重新加載)。

我們至少知道9.實際上並沒有正確發生,因爲這是你所說的問題。

假設我中有你的實現是正確的,你應該在最後一步確定的值是如何應該被寫入控制開始(直接分配或服務器註冊的啓動客戶端腳本如服務器控件的值編寫表單值)。然後你應該檢查發送到你發現的方法的值。如果值爲不正確,請繼續備份到每個先前的服務器請求,以查看響應之前生成的會話狀態是什麼。如果值爲正確那麼在客戶端收到服務器響應(我認爲這應該只發生在我上面的jQuery理論正確的情況下)之後,您就知道發生了什麼問題(最可能是客戶端)。

相關問題