.net - MVC、ViewModel 和验证

标签 .net asp.net-mvc-3 poco ef4-code-only

我正在使用 POCO 创建带有 EF4 的 MVC3 应用程序。我已经向我的 EF 实体添加了验证属性。现在,当我构建 View 时,我想使用 View 模型(也许使用 AutoMapper 来填充它们)。

我遇到的问题是我必须在我的 View 模型上重新定义我的验证属性,这违反了 DRY 原则。例如,如果我决定更改字段的大小,则必须同时更改 POCO 和使用它的任何 View 模型的 MaxLength 属性。

是否有一些棘手的方法可以将验证规则从我的 POCO 映射到我的 View 模型?

最佳答案

我个人在 View 模型上执行验证。这是 Controller 从 View 接收的内容,它是包含用户输入的类。我区分了两种类型的验证规则:表面验证和业务验证。应在 View 模型中强制执行诸如必填字段、正确格式之类的规则,而应在模型上验证数据库中已存在的具有给定名称的用户等业务规则。

您也可以将不同的 View 模型映射到同一模型,但基于 View 验证规则可能会有所不同。因此,您在 View 模型上不会有完全相同的验证规则。

关于.net - MVC、ViewModel 和验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4567383/

相关文章:

c++ - 无法链接到 `libPocoFoundation` Poco C++ 框架

.net - 公开的嵌套类型

c# - 从操作返回图像会导致 FireBug/Chrome Dev 出错。工具

jquery - WCF/ASP.NET MVC : Supporting events from WCF to asp.net MVC 或类似的概念?

entity-framework - Entity Framework 4 -- FunctionImport 的 ExecuteFunction<T> 映射到 POCO 复杂类型的问题

entity-framework - 使用 T4 生成 Poco 类,忽略 StoreGeneratedPattern 属性

c# - 在 C# 中将 += 或 -= 作为参数传递

c# - 我不能在此处将我的 ADO.NET 实体模型实例包装在 using 语句中吗?

.net - .NET 中的 WinHttp.WinHttpRequest

jquery - 在MVC3中使用CheckBoxFor时,如何使用JQuery仅选择CheckBox INPUT?