使用POCO和模型绑定进行上下文验证是否常见?

时间:2015-12-09 15:57:01

标签: asp.net asp.net-mvc model-binding

我在ASP.NET MVC中注意到,将模型绑定和验证注释与也与数据库交互的业务对象结合使用是很常见的。

不幸的是,这意味着请求的范围和发生的验证对于域模型必须始终为1:1。至少不需要编写一堆例外代码。

如果我正在寻找在ASP.NET MVC中进行上下文验证的方法,那么是否有任何示例或者是否已经可以使用代表传入数据的POCO类?

让我们称之为“#34; Request Models"”。一个例子可能是我创建了一个名为UpdateUserRequestModel的类。我只定义了允许用户更新的数据,然后,我将MVC绑定到此代理模型中。稍后在我的控制器/服务中,我访问请求模型的公共属性,以获取我希望移动到用户对象的值。

所以,这里的问题是:在普遍接受的ASP.NET MVC约定中是否已经有这种做法的例子?它有特定的名字吗?如果不这样做,当我希望进行上下文验证时,是否有比MVC附带的默认模型绑定器和值提供程序更好的选项?

1 个答案:

答案 0 :(得分:1)

我是在我的应用上做的。我验证用户执行的操作,将验证属性等放在表示该操作的视图模型上(方便地在视图中建模表单,模型在返回的路上绑定结果)。我甚至移植了ContosoUniversity应用程序以反映这种风格:

https://github.com/jbogard/ContosoUniversity