我正在創建一個Asp.Net MVC應用程序,該應用程序適用於在我們的倉庫中使用的小型堅固耐用的手持設備。由於屏幕很小,我們最終獲得了很多流程,在我們實際處理信息之前,我們會通過多個屏幕輸入信息。例如,如果他們想創建庫存,我們將有一個屏幕詢問他們的位置和物品編號信息,第二個屏幕詢問批次跟蹤信息,然後是第三個屏幕詢問數量信息。在第三個屏幕上進入後,我們將獲取所有信息並創建庫存交易。Asp.Net MVC模型驗證結構
我正在努力如何正確地與模型和驗證結構。我想在每個屏幕上向用戶提供驗證信息。以下是我嘗試的方法:
- 有一個模型和整個過程的視圖。每個屏幕都是視圖中的DIV,我使用JavaScript來隱藏和顯示DIV。我創建了自定義的驗證屬性,我使用模型中的屬性來提供驗證。然後我使用JQuery遠程驗證來執行驗證cliet端,所以我確保當前DIV上的字段在切換到下一個DIV之前是有效的。我用這種方法遇到的問題是手持設備不是真正強大的,並且沒有最好的網絡瀏覽器,所以遠程驗證最終變得不可靠。
- 爲每個頁面有不同的視圖,併爲每個頁面有不同的模型。我再次使用自定義驗證屬性來進行驗證。這種方法效果很好,除了我最終得到了大量相似的不同模型。
- 每個頁面都有不同的視圖,並且在所有頁面上都有一個模型。對於這種方法,我不能使用驗證屬性進行驗證,因爲如果我在模型上需要數量(最後一頁上的字段),那麼它會拋出一個錯誤,說明它在第一頁上是必需的。所以我最終不得不在我的控制器中做我不喜歡的驗證。
我覺得我提出的這三種方法都有重大問題。有沒有更好的方法來處理這個問題?
這個答案如何提供一個實質性的考慮OP應該考慮什麼選項? – rae1
因爲他沒有要求幫忙選擇他的一個選項,所以他在尋求幫助,選擇他可能沒有考慮過的另一個選項。我沒有看到涵蓋的視圖模型選項,因此他可以考慮它。 – erikrunia