2012-11-03 65 views
0

我们有一个使用NHibernate的一个MVC3项目;有一个单独的模型项目,其中包含存储库和服务层使用的所有模型类。该机型利用数据注解像System.ComponentModel.DataAnnotations DisplayAttribute和RequiredAttribute标签的。模型层的依赖属性

也有作为包含在System.Web.Mvc RemoteAttribute等属性。

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

假设解决方案可能有其他前端什么是处理这种依赖关系链接的最佳方式?

+1

应用那些“视图特定”只能在相应的视图模型属性,而不是模式本身 – psousa

回答

1

RemoteAttribute没有在模型中属于,因为它指定一个控制器/动作验证服务器上的性能,和模型不应该有像控制器,动作或路由概念的相关知识。表示层取决于模型,而不是其他方式。

我会创建一个继承模型,覆盖了财产(必须是虚拟的),并增加了RemoteAttribute视图模型。这样你就可以避免重复和映射,尽管这也是一种选择。

+0

我们当前视图模型包含一个属性,它是模型类型。在那种情况下,需要另一层视图模型?一个继承和覆盖从原始模型进行任何验证的属性,如远程和包含由观点和新的验证视图模型的属性所需的数据剃须刀视图中使用的另一种视图模型? –

+1

@JohnSmith是的,这听起来不错。 –

1

为了减少数据库模型和前端技术之间的依赖关系,你可以验证QND在控制器中的其他前端的行动,并把数据从视图模型数据库实体后,使用特殊的视图模型。