【问题标题】:Where to place regular Controllers and ApiControllers放置常规控制器和 ApiController 的位置
【发布时间】:2012-05-11 05:54:39
【问题描述】:

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

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

建议的做法是什么?

这里补充了一些想法:

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

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

此外,如果我想拥有区域怎么办?我应该将 API 和 WorkerServices 放在区域之外吗?或者每个区域都有一个 API 文件夹和一个 WorkerServices 文件夹?

我肯定会在今天下午反复考虑,做出一个有计划的决定。请让我知道您的建议或经验。谢谢。

【问题讨论】:

    标签: ajax asp.net-mvc-3 asp.net-mvc-4 asp.net-web-api


    【解决方案1】:

    您可以对 Controllers 文件夹进行分支,以保持 Api 控制器和标准控制器之间的分离:

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

    或者如下分离:

    |-- Controllers
    |-- Api
    

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

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

    【讨论】:

    • 谢谢。特别感谢您提供的数据。这些正是我想要描述的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    相关资源
    最近更新 更多