在razor视图中使用域对象定义是可以接受的

本文关键字:定义 对象 视图 razor | 更新日期: 2023-09-27 18:08:23

我目前正在使用MVC3和Spring开发一个多层应用程序。NET,一切进展顺利。我有一个关于剃刀的问题,并为它分配一个模型。例如,我的定义说,成员是在域层,是否可以在这里用数据注释装饰字段,并直接在视图中使用它?这似乎在某种程度上违背了关注点分离。

既然如此,最好的方法是什么?在模型中重新定义所需的类,并在那里使用它们?

任何建议/建议都将非常欢迎。r .

在razor视图中使用域对象定义是可以接受的

这里的标准方法是使用ViewModels并用应用于表示层的验证属性对它们进行注释。使用这种方法,您可以将域对象属性映射到ViewModel上的属性;在这方面,像AutoMapper这样的库确实可以帮助减少到处重复的代码。

有时您可能会发现ViewModel所做的只是简单地包装域对象。在这些情况下,我仍然认为这是一件好事,因为它允许您向特定于模型和上下文的ViewModel添加任何表示功能,如果您将域对象直接映射到视图,则没有此选项。