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