将动作组织到控制器中

时间:2013-07-17 21:26:48

标签: c# asp.net asp.net-mvc

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

  • 当用户在POST: Index(file)中调用UploadsController时,会添加上传。
  • 当用户在GET: Files(fileName)
  • 中调用UploadsController时,会添加下载内容
  • 当用户调用标有ActionResult的任何LogAttribute时,会添加一个请求。

我的控制器是什么样的:

UsersController

  • GET:列表
  • GET:创建
  • POST:创建(viewModel)
  • POST:删除(userID)
  • GET:SignIn
  • POST:SignIn(用户名,密码)
  • POST:SignOut

UploadsController

  • GET:Index
  • POST:索引(文件)
  • GET:Files(fileName)

方法1:

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

  • GET:ListAll
  • GET:ListFor(userID)

方法2:

创建一个具有以下操作的新控制器StatsController

  • GET:ListAllUploads
  • GET:ListUploadsFor(userID)
  • GET:ListAllDownloads
  • GET:ListUploadsFor(userID)
  • GET:ListAllRequests
  • GET:ListRequestsFor(userID)

如前所述,我不确定这两种方法中哪些(如果有的话)有意义。有人可以说清楚,这将是“最好的”吗?

1 个答案:

答案 0 :(得分:0)

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