我最近一直在研究MVC4 WebApi示例。这些示例应用程序非常简单,只包含几页。由于它们的目的只是为了展示如何使用ApiController,因此应用程序在结构上保持最小。
在较大的Web应用程序中,会有许多常规控制器和Api控制器。我们怎么能以有组织的方式安排他们呢?将所有api控制器放在一个文件夹中,并在每个视图调用上$.ajax()
是一个好习惯吗?或者,最好将api控制器与常规控制器一起放置,以便显示相关$.ajax()
所在的视图吗?
建议的做法是什么?
这里添加了一些想法:
我将花更多时间思考它。现在我的计划是标准控制器仅用于渲染视图。没有视图模型将通过标准控制器传递。也就是说,没有return View(model)
。将使用客户端编程(如jQuery模板)从API控制器返回的json对象填充视图。 [我这个太极端了吗?没有return View(model)
?真的?]
如果可以,那么常规控制器将不会调用任何工作服务。相反,应该从API控制器调用所有工作服务。那么,我应该如何放置那些WorkerServices及其接口?
更重要的是,如果我想拥有区域怎么办?我应该在区域外放置API和WorkerServices吗?或者每个区域都有一个API文件夹和一个WorkerServices文件夹?
我一定会在今天下午一遍又一遍地思考,做出一个有计划的决定。请让我知道您的建议或经验。谢谢。
答案 0 :(得分:4)
您可以对Controllers
文件夹进行分支,以便在Api控制器和标准控制器之间保持分离:
|--- Api
Controllers - |
|--- Standard
或以下分离:
|-- Controllers
|-- Api
这真的是个人品味的问题。我只是注意不要将标准和Api控制器混合在同一个文件夹中,因为它们更难以区分。
就$.ajax
调用而言,控制器的位置以及它们在服务器上的组织方式并不重要。路由引擎可以将传入的URL分配给相应的控制器。