gpt4 book ai didi

asp.net-mvc - 如何在不重复代码的情况下实现业务和 View 验证?

转载 作者:行者123 更新时间:2023-12-01 11:04:46 26 4
gpt4 key购买 nike

如何避免需要对我的 ViewModel 和业务/域对象重复验证规则?

例如,我可以在我的 ViewModel 上使用 DataAnnotation 属性,这将在我的 MVC 网络应用程序中为我提供客户端和服务器端验证。但是这个 ViewModel 通常会映射到业务/领域对象,并为服务预制一些业务逻辑,这意味着验证将不得不再次发生,通常使用相同或相似的规则。反正有这个吗?

最佳答案

我认为您所描述的是正常且可以接受的。将您的 UI 和数据注释视为友好的 UI 验证,能够立即向用户显示输入数据的任何验证问题。

我认为您的业务/域对象的验证是完整的验证,不仅是验证值,还执行业务规则(即 - 将商品添加到购物车 --> 商品是否有库存?)

然后总是有通常由数据库强制执行的后端验证(即允许列中的空值)。除非您的数据库在所有字段中都允许空值,否则您实际执行的验证不仅仅是您提到的两个地方,我认为这是一件好事。

我认为底线是您可能希望您的业务/域对象强制执行所有验证,而您的客户端和后端验证只执行最基本的验证。

希望对您有所帮助。

关于asp.net-mvc - 如何在不重复代码的情况下实现业务和 View 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com