干净的架构 - 在 ASP.NET MVC 中 - 我使用哪一层来编写 ViewModel?

Clean Architecture - In ASP.NET MVC - Which layer I use to write the ViewModels?

问题很简单,

我正在使用 ASP.NET MVC 为项目(网站)使用 Clean Architecture。我从 GitHub.

下载 Ardalis 编写的 Clean Architecture 模板示例代码

在那个特定的模板中,作者没有使用视图模型。

是否有人对 ASP.NET MVC 等使用 Clean Architecture 和 viewmodel 的模板有任何参考,或者知道在哪里放置(分层)视图模型。

I'm the author of the CleanArchitecture template in question

最新版本使用 ViewModel classes 和 Views 作为几个选项之一(其他是 Razor Pages,APIs with Controllers,APIs with API端点)。通常,在使用 ViewModel classes 时,通常的约定是将它们放入 Web 项目根目录中的 ViewModels 文件夹中。

这将它们放在 Views 文件夹附近,因此很容易找到它们(对于与 API 控制器一起使用的 API 模型,通常将它们放置在 ApiModels 文件夹中,该文件夹排序在 API and/or 这些情况下通常使用的控制器文件夹)。

值得一提的是,如果您使用 Razor Pages,这个问题就会消失,因为模型链接到方法中的“视图”(页面)。

与 APIs 类似,如果您采用 API 端点方法(我也是其作者的另一个开源包),用于每个端点的请求和响应模型是通常也链接到端点 class。