将操作组织到控制器中

本文关键字:控制器 操作 | 更新日期: 2023-09-27 18:23:51

好吧。。。我需要列出所有上传、下载和请求。但我也需要列出所有特定于用户的上传、下载和请求。我不确定把这些动作放在哪里,以使其合乎逻辑。操作以json形式返回其数据。

  • 当用户调用CCD_ 2中的CCD_
  • 当用户在UploadsController中调用GET: Files(fileName)时,会添加一个下载
  • 当用户调用任何标有LogAttributeActionResult时,会添加一个请求

我的控制器是什么样子的:

用户控制器

  • GET:列表
  • GET:创建
  • POST:创建(viewModel)
  • POST:删除(userID)
  • GET:登录
  • POST:登录(用户名,pwd)
  • POST:注销

上传控制器

  • GET:索引
  • POST:索引(文件)
  • GET:文件(文件名)

方法1:

创建两个新控制器DownloadsControllerRequestsController。在这两个控制器中,UploadsController创建以下操作:

  • 获取:ListAll
  • GET:ListFor(userID)

方法2:

创建一个具有以下操作的新控制器POST: Index(file)0:

  • 获取:ListAllUploads
  • GET:ListUploadsFor(用户ID)
  • 获取:列出所有下载
  • GET:ListUploadsFor(用户ID)
  • GET:列出所有请求
  • GET:ListRequestsFor(用户ID)

如前所述,我不确定这两种方法中的哪一种(如果有的话)是有意义的。有人能解释一下哪一个是"最好的"吗?

将操作组织到控制器中

控制器应该对功能相关的Action方法进行分组——至少我这样认为。你会不会有一个几千行的类,其中有一些不相关的方法,它们都做着独特的事情?如果不是,不要认为控制器有任何不同;毕竟,它是一个带有方法的类。我可能会选择任何一种方法——两者对我来说都很好。这取决于你喜欢什么。我甚至可能会更精细,有一个UploadsController以及DownloadsCoontroller和RequestsController。这些控制器名称将有助于将视图隔离到唯一的文件夹中,这对其他开发人员也更人性化。