好的...我需要列出所有上传,下载和请求。但我也需要列出所有上传,下载和特定于用户的请求。我不确定在何处放置这些操作以使其合理。这些操作将其数据作为json返回。将操作组织到控制器中
- 当用户调用
UploadsController
中的POST: Index(file)
时,会添加上传。 - 当用户在
UploadsController
中调用GET: Files(fileName)
时,会添加下载。 - 当用户调用标有
LogAttribute
的任何ActionResult
时,会添加一个请求。
什么我的控制器看起来像:
UsersController
- GET:列出
- GET:创建
- POST:创建(视图模型)
- POST:删除(用户ID)
- GET:登录
- POST:签到(用户名,PWD)
- POST:SignOut
UploadsController
- GET:指数
- POST:指数(文件)
- GET:文件(文件名)
方法1:
创建2个新的控制器,DownloadsController
和RequestsController
。在这两个控制器和UploadsController
创建以下操作:
- GET:ListAll
- GET:ListFor(用户ID)
方法2:
创建一个新的控制器,StatsController
它具有以下操作:
- GET:ListAllUploads
- GET:ListUploadsFor(用户ID)
- GET:ListAllDownloads
- GET:ListUploadsFor(用户ID)
- GET:ListAllRequests
- GET:ListRequestsFor(用户ID)
正如前面提到的,我我不确定这两种方法中的哪一种(如果有的话)是有意义的。有人可以解释一下,这将是“最好的”?
我同意这里,控制器通常应该以逻辑方式处理相同的对象。我唯一需要的是让userId可选参数'RequestController.GetAll(int?userId)'和'UploadsController.GetAll(int?userId)',因为这些方法在相同的基础对象之后,只是使用不同的查询...又名相同的网址不同querystring – stuisme
@stuisme,不完全。例如,将所有_Requests_映射到ViewModel时,我必须为_UserID_获取_Username_。 - 但是为_User_获取_Requests_,我已经知道_User_的_Username_,因此不必为了获得_Username_而进行额外的数据库调用。 - 简而言之:映射逻辑不同,无论是_Requests_还是只针对特定的_User_ ..以及_Uploads_/_Downloads_的工作原理。 – ebb