我一直在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. ASP.Net MVC 2 - jQuery验证和表单提交 - DataAnnotations
- 3. 提交Redux表单验证
- 4. 验证表单阻止表单提交
- 5. 玩框架表单提交没有通过验证
- 6. 表单验证提交
- 7. jQuery表单提交验证
- 8. 表单提交验证
- 9. 验证表单提交
- 10. 提交PHP验证表单
- 11. ASP.NET MVC验证架构DB验证值
- 12. ASP.NET提交但不验证?
- 13. 在ASP.NET MVC表单上提交?
- 14. 如何验证表单提交的PHP
- 15. 提交的JavaScript表单验证
- 16. ASP.NET MVC:提交项目列表时验证和数据格式化问题
- 17. MVC架构中的数据和表单验证
- 18. ajax提交表单在播放框架
- 19. 表单不在Jquery验证后提交
- 20. 在提交之前使用php文件验证表单数据
- 21. 阻止在MVC 3中进行多表单提交验证
- 22. MVC 4验证发射,但表单仍在提交?
- 23. ASP.net MVC-流利的AJAX表单验证
- 24. javascript中的asp.net MVC表单验证
- 25. 提交所有数据列表框Asp.net MVC
- 26. 在提交之前检查jQuery验证的表单提交
- 27. jquery验证块表单提交
- 28. 选择验证框架 - ASP.NET
- 29. ASP.NET MVC 3列表框验证
- 30. 表单验证提交预览(PHP)
我确实看了一下CodePlex项目,但我并没有对我所看到的(当时)印象深刻。也许现在好多了。我会再看一次。显然,Jeff和团队必须验证StackOverflow中的表单数据。当我查看[问一个问题](http://stackoverflow.com/questions/ask)页面的HTML时,它看起来像页面发回自己。我想知道他们是如何实施验证的。 – 2008-08-13 20:15:38