我一直在ASP.NET MVC框架和一兩件事,真的困惑我玩弄我是怎樣,我的意思辦提交的表單數據的服務器端驗證。我認爲我不會回發到相同的URL,但如果我不這樣做,我如何重新顯示輸入的數據和錯誤消息的表單?另外,驗證邏輯應該放在哪裏?在模型或控制器中?這似乎是Web表單更強大的幾個領域之一(我錯過了驗證控件)。驗證提交的表單數據在ASP.NET MVC框架
回答
你可能想看看ScottGu的最新職位ASP.Net分組5.走過驗證樣本,這是非常有趣:
你看過這個嗎? http://www.codeplex.com/MvcValidatorToolkit
從頁面
的驗證工具包提供報價使用 驗證集客戶端和服務器端的新ASP.NET MVC框架 上驗證 HTML表單驗證的一套 。
恐怕有人比我更懂MVC精明的人會不得不在建築物的哪個位置說些什麼。
我剛學的MVC框架太,所以我不知道如何關閉這個,但是從我的理解,你會對一個視圖,如Edit.aspx形式。然後,此表單會將控件傳遞給另一個操作方法,如Update()將您在Edit.aspx中設置的表單的內容作爲參數傳遞。
Update(int id, string name, string foo)
您可以在該方法中進行驗證。如果一切正常,
return View("Item", yourObject)
下面是MVC流的概述:
- /新 - 渲染包含表格的「新」觀點,爲用戶填寫
- 用戶填寫表單並將其發佈到/創建
- 該職位被路由到您的控制器上的創建操作
- 在您的操作方法中,使用發佈的數據。
- 你的模型應該驗證自己。
- 如果模型有效,您的控制器應該閱讀。
- 如果模型有效,請將其保存到數據庫中。重定向到/ show以呈現您的對象的show View。
- 如果模型無效,請將表單值和錯誤消息保存在TempData中,然後重新指向New操作。使用TempData中的數據填寫表單域並顯示錯誤消息。
驗證框架將幫助你一起在這個過程中。另外,我認爲ASP.NET MVC團隊正在規劃下一次預覽的驗證框架。
優秀的總結!用示例 – Cherian 2009-04-09 04:10:54
Castle項目中有Castle.Components.Validator模塊。它非常靈活和強大。它基於模型屬性(或任何其他來源)生成驗證規則,甚至可以使用jQuery,Prototype Validation,fValidate和其他來生成JS驗證。 將驗證程序從IValidationEngine接口中抽象出來是明智的。
至於我可以告訴大家仍然試圖找出做到這一點的「標準」方式。這就是說,絕對看看Phil Haack和Scott Guthrie在MVC上的最新帖子,你會發現他們如何做的一些有趣的信息。當我只是爲自己玩耍時,我爲我生成的LinqToSql數據類創建了一個ModelBinder。你可以看看這篇文章,瞭解如何把一個基本模型綁定器:
的在你的行動,如果你創造了一個「產品」 ModelBinder的你只需要聲明的動作,像這樣:
public ActionResult New(Product prod)
只要你已經建立了它,模型聯編程序將負責將發佈的數據分配給對象屬性。
後您的GetValue(),你可以實現你想要的任何驗證,是否使用異常的,正則表達式的,或者任何你可以像調用方法中:
(ModelStateDictionary_name).AddModelError(「form_element_id」,「 entered_value「,」error_message「);
然後,您可以在視圖中僅顯示<%= Html.ValidationSummary()%>以顯示所有錯誤。
對於客戶端驗證,我只是使用jQuery。在設置好基本示例之後,您可以開始將所有這些與部分視圖和Ajax調用結合起來進行一些有趣的事情。
- 1. ASP.NET MVC中的表單提交屬性驗證錯誤
- 2. 表單驗證不提交
- 3. asp.net mvc 3 - ajax表單提交和驗證
- 4. ASP.Net MVC 2 - jQuery驗證和表單提交 - DataAnnotations
- 5. ASP.NET MVC和實體框架:生成的數據驗證
- 6. ASP.NET MVC表單提交
- 7. asp.net mvc 3客戶端驗證提交空表單或未正確驗證
- 8. 提交Redux表單驗證
- 9. 驗證表單阻止表單提交
- 10. 玩框架表單提交沒有通過驗證
- 11. 表單驗證提交
- 12. 提交PHP驗證表單
- 13. 表單提交驗證
- 14. PHP表單驗證提交
- 15. 驗證表單提交
- 16. jQuery表單提交驗證
- 17. ASP.NET MVC驗證架構DB驗證值
- 18. ASP.NET MVC數據驗證
- 19. ASP.NET提交但不驗證?
- 20. 在ASP.NET MVC 4框架中基於自定義非屬性的表單驗證
- 21. 在ASP.NET MVC表單上提交?
- 22. 如何驗證表單提交的PHP
- 23. 提交的JavaScript表單驗證
- 24. 如何在ASP.NET中設置表單提交的目標框架?
- 25. ASP.NET MVC:提交項目列表時驗證和數據格式化問題
- 26. MVC架構中的數據和表單驗證
- 27. 在ASP.NET MVC 2上調用Javascript驗證方法查看錶單提交?
- 28. jQuery驗證框架+ qTip未提交提交
- 29. ajax提交表單在播放框架
- 30. Ajax表單在yii框架中提交
我確實看了一下CodePlex項目,但我並沒有對我所看到的(當時)印象深刻。也許現在好多了。我會再看一次。顯然,Jeff和團隊必須驗證StackOverflow中的表單數據。當我查看[問一個問題](http://stackoverflow.com/questions/ask)頁面的HTML時,它看起來像頁面發回自己。我想知道他們是如何實施驗證的。 – 2008-08-13 20:15:38