放置常规控制器和 API 控制器的位置



我最近一直在研究MVC4 WebApi的例子。这些示例应用程序非常简单,仅包含几页。由于它们的目的只是展示如何使用 ApiController,因此应用程序的结构保持在最低限度。

在较大的 Web 应用程序中,将有许多常规控制器和 API 控制器。我们应该如何以有组织的方式安排它们?将所有 api 控制器放在一个文件夹中并在从那里的每个视图调用上$.ajax()是否是一种好的做法?或者,将 api 控制器与呈现相关$.ajax()所在的视图的常规控制器放在一起是否更好?

建议的做法是什么?

这里补充了一些想法:

我将花更多的时间思考它。现在我的计划是标准控制器仅用于渲染视图。不会通过标准控制器传递任何视图模型。也就是说,没有return View(model).视图将使用客户端编程(如 jQuery 模板(从 API 控制器返回的 json 对象进行填充。[我是不是太极端了?没有return View(model)?真的吗?

如果这没问题,则常规控制器将不会调用任何辅助角色服务。相反,应从 API 控制器调用所有工作器服务。那么,我应该如何放置这些工作线程服务及其接口?

更重要的是,如果我想拥有区域怎么办?我应该将 API 和辅助角色服务放置在区域之外吗?或者每个区域都有一个 API 文件夹和一个工作器服务文件夹?

今天下午我一定会一遍又一遍地考虑,做出一个经过深思熟虑的决定。请让我知道您的建议或经验。谢谢。

您可以分支Controllers文件夹以保持 API 控制器和标准控制器之间的分离:

              |--- Api
Controllers - |
              |--- Standard

或以下分离:

|-- Controllers
|-- Api

这真的是个人品味的问题。我只是要注意不要在同一文件夹中混合标准和 API 控制器,因为它们更难区分。

$.ajax调用而言,控制器的位置以及它们在服务器上的组织方式并不重要。路由引擎负责将传入 URL 调度到相应的控制器。

最新更新