在没有MVC依赖关系的模型上进行MVC数据注释

本文关键字:MVC 模型 数据 注释 依赖 关系 | 更新日期: 2023-09-27 18:21:35

假设我有一个包含所有模型类的项目,其中一个单独的项目包含MVC 4 web应用程序(服务、存储库层)。

如果我想为我的模型属性使用MVC特定的数据注释,我如何在不依赖MVC的情况下做到这一点?

任何引用该模型的非MVC项目也需要MVC引用。我更希望只有当MVC使用模型时才添加这些,而不是所有的模型。

起初我想的是分部类,但我知道这些不能用于交叉汇编。

在模型类之外创建克隆类和从原始类继承可能不起作用。它将要求代码引用这些子类,而不是原始类。

我更喜欢一种更不引人注目的方式,将属性附加到模型中。

在没有MVC依赖关系的模型上进行MVC数据注释

如果我想为我的模型使用MVC特定的数据注释属性,如何在不依赖MVC的情况下做到这一点?

通过使用视图模型。视图模型是您在MVC应用程序中设计和定义的类,也是传递给视图的类。您永远不应该将模型传递给视图。控制器操作可以在服务层中查询域模型,然后将这些域模型映射到视图模型,并将这些视图模型传递到视图。另一方面,您的[HttpPost]控制器操作应该将具有相应数据注释的视图模型作为参数,将这些视图模型映射到相应的域模型,并将域模型传递到您的服务层。