0

我们有一个使用 nHibernate 的 MVC3 项目;有一个单独的模型项目,其中包含存储库和服务层使用的所有模型类。这些模型使用 System.ComponentModel.DataAnnotations 中的 DisplayAttribute 和 RequiredAttribute 等数据注释。

System.Web.Mvc 中还包含诸如 RemoteAttribute 之类的属性。

这当然意味着模型项目现在依赖于特定的前端技术。

假设解决方案可能有其他前端,那么处理此依赖链接的最佳方法是什么?

4

2 回答 2

1

为了减少数据库模型和前端技术之间的依赖关系,您可以使用特殊的视图模型来验证控制器中的其他前端操作,并将数据从视图模型放到数据库实体之后。

于 2012-11-04T04:47:53.300 回答
1

RemoteAttribute不属于模型,因为它指定了一个控制器/动作来验证服务器上的属性,并且模型不应该了解控制器、动作或路由等概念。表示层取决于模型,而不是相反。

我将创建一个继承模型的视图模型,覆盖属性(必须是虚拟的)并添加RemoteAttribute. 这种方式可以避免重复和映射,尽管这也是一种替代方法。

于 2012-11-04T04:15:27.300 回答