2014-01-25 52 views
0

我們有一個用C#開發的asp.net web表單。這種形式有大約100個字段,它是非常動態的形式。從某種意義上說,它是動態的,當你第一次開始時你只能看到大約20個字段,但隨着你繼續在表單中進行不同的選擇,包含字段的面板被顯示或隱藏。幾乎每個字段都使用.net驗證器在客戶端進行驗證。 JavaScript用於打開/關閉驗證器,具體取決於它們所在的面板是否可見。asp.net需要關於複雜形式和驗證器的一些設計建議

這個表單有一些bug,後面調試這個表單很麻煩,因爲almos每個字段都至少有2個驗證器 - require和/ regular experssion。還有一些被選中的字段做autopostback。大多數用戶不能提交表單,因爲一個/多個驗證器仍然啓用,但它們所連接的字段是不可見的,因此很難調試哪個驗證器導致問題。

所以這裏我的設計問題。

  • 在這種情況下調試驗證器的更簡單的方法是什麼?如何找到哪些驗證器仍在?
  • 而不是使用asp.net驗證器,我應該重新編碼表單,並且使用JavaScript進行驗證,至少用這種方法可以更好地調試驗證器:
  • 任何設計考慮因素?既然這種形式是如此的痛苦,我們就不會重新設計它,並且以正確的方式去做。

我在想如果我創建一個單一的JavaScript函數,每次單擊或更改表單字段時都會調用,這個JavaScript函數將被調用,它將檢查所有100個表單字段。如果表單域可見,則啓用相應的驗證器,否則禁用。

您對這種方法有什麼看法?

感謝您的時間和建議提前。

+1

一個有100個字段的窗體對我來說聽起來有問題。也許嘗試並將一些字段移到另一個表單。你有沒有考慮過使用嚮導控制? – StevieB

+0

當重新閱讀你的問題時,我想知道爲什麼人們把他們的生活變得如此複雜,同時保持整潔和乾淨的事情要容易得多並且收益更好。 – pid

回答

0

單從可用性來看,我強烈建議保持形式儘可能地短,並有形式的列表,以填補概述頁面上。用戶需要暫時停下來,並在中途保存工作。

有沒有細分表格的原因(例如匿名用戶的調查)。但是,如果用戶被認證並被迫填寫表格(通過法律或其他現實世界的約束),那麼你應該有5種形式的20個字段左右。

一旦複雜性較低,你就可以更輕鬆地接近那些其他問題。

對於您的問題:

我會建議使用ASP.NET驗證器。他們被拒絕進入兩個世界:可用性(反應性)的客戶端和安全性的服務器端。如果沒有ASP.NET驗證器,您將很難擁有相同的易用性和一致性。

正則表達式不應該在驗證調試,但在一個單獨的時刻(單元測試或測試噸串的一個簡單的腳本),然後下降,在小測試之後。

在autopostback上:爲什麼?儘量避免它或使用AJAX。

你需要做很多工作才能遵循這些建議,但要確信它們是值得的。特別是對於新項目。