【发布时间】:2012-09-17 21:52:22
【问题描述】:
我们正在构建一个 ASP.Net MVC 应用程序,我们问自己一个问题,我们应该将传入数据的验证逻辑放在哪里。
我们已经进行了简单的验证:这些是视图模型上的属性,例如 [required], [numeric] , [email] 等(顺便说一句,这也可以讨论)
但是现在我们有更多的输入验证:我们想要验证从下拉列表中接收到的 id 是否是真实的 id。
例如:当我们收到 91 作为 countryid 时,我必须确保 91 是有效的 countryid 而不是用户“侵入”表单的值。因为如果不是有效的 countryid,我的数据层会产生错误。
我应该把它放在控制器操作方法中,因为那 当请求的数据到达时,方法知道什么是对的,什么是错的?
我应该把它放在一个 VacancyValidator 中(对象是一个 Vacancy 对象)我将所有与空缺相关的所有验证逻辑放在哪里 视图模型
我应该把它放在 ViewModel 中,因为它应该知道如何验证自己
我是否应该创建一个属性来验证我放置在 ViewModels 属性上的属性
我应该把它放在一个 Vacancy[thisviewmodelsname]Validator 中,我在其中放置了这个特定视图模型的所有验证逻辑
任何想法表示赞赏....
【问题讨论】:
标签: asp.net-mvc validation architecture