在我爲內部使用而設計的小型Web應用程序中,我希望用戶能夠選擇要打開的數據文件之一。我有一個強類型的視圖,它將文件列表作爲模型。ASP.Net MVC中的一個視圖上的多個表單,同時保留驗證
我的初始版本有一個索引操作,它獲取數據文件列表並返回視圖,然後創建一個新文件的操作,以及上傳現有文件的上傳操作。但是,在這兩種情況下,爲一個文本框和按鈕設置一個全新的頁面將會是一個糟糕的用戶體驗,因此我在Index視圖中添加了兩個表單,一個指向Create,另一個指向Upload,兩個都使用發佈動詞。
這個工作非常好,加上仍然保留了漂亮的URL命名 - 即使創建/上傳沒有UI。問題是,在這兩個操作的結尾,我做了一個 返回RedirectToAction(「Index」); 哪個輪到獲取要顯示的數據並顯示視圖 - 很好。但我沒有得到驗證。看起來,爲了讓ValidationSummary和ValidationMessage幫助器工作,我需要將Post操作與Get操作(在本例中爲Index)調用相同。我改變了一切,以便在Post操作中只有一個Get/Post Index操作和一個if語句,以查看該按鈕是否爲創建或上傳。但是,這似乎是比我最初想出的解決方案更爲複雜的解決方案。
當然,另一種選擇是爲創建/上傳創建視圖,每個視圖都帶有單個文本框 - 但我寧願將笨重的代碼視爲笨重的UI。
有什麼我失蹤,或者這只是MVC驗證框架的設計方式。
你需要接受一些你的問題的答案,期望人們回答更多...... – Palantir
嗯。對此的信息。我是盲人,並使用屏幕閱讀器 - 我相信我已經通過點擊接受按鈕來確認答案。將研究這個並回去接受以前的。 – Saqib
你使用什麼屏幕閱讀器? –