ASP.NET MVC是否提供标准验证器功能,或者您是否必须手动创建自己的验证?如果是后者,是否有可用于ASP.NET MVC Web应用程序的第三方验证器?
答案 0 :(得分:4)
发布此答案后不久,我发现xval是ASP.NET MVC的验证框架。
答案 1 :(得分:3)
ASP.NET MVC包含Html.ValidationSummary()
和Html.ValidationMessage()
等方法。如果您使用TryUpdateModel
,这些会自动更新。您也可以手动验证并自己设置错误消息。 Here是如何使用它的一个例子。
答案 2 :(得分:1)
David Hayden wrote an article在www.codebetter.com上描述了处理验证的好方法。当然xVal是一个选项,但是理解它总是很棒。
答案 3 :(得分:1)
我实现了我在Stephen Walther blog上找到的代码变体。我通过定义一个IValidatedEntity接口来使用LINQ2SQL模型,该接口包含GetRuleViolations()方法并实现调用GetRuleViolations()的部分OnValidate方法,并在违规次数非零时抛出自定义异常。在控制器中,这会在SubmitChanges上触发数据上下文。如果我得到一个异常,我通过GetRuleViolations()方法重新查询模型,以构建模型错误以传回视图。
答案 4 :(得分:1)
您还可以结帐.net validation framework。它是一个规则框架,允许您创建验证器,将验证器应用于规则,将规则附加到模型,并在运行时在客户端和服务器上检查这些规则。它提供了灵活的配置规则的方法 - 大量使用linq进行流畅和强类型配置。它还提供了可扩展性点来创建自己的客户端脚本生成器和规则。
该框架利用MVC RC HtmlHelpers和默认约定。
如果您下载最新的源代码,您可以看到在SplitBranch中工作的框架示例 - > QSAspMvc快速入门项目。它仍然在积极发展。