我正在检查Web API,我不确定asp.net mvc和web api如何能够或应该一起工作。
我想在客户端实现Backbone,但我不确定我是否应该在服务器端实现ApiController或普通的Controller?
我正在做的事情(获取当前用户/帐户信息)是基础ApiController将具有一些与基本控制器相同的功能,这将导致一些重复的功能,但不确定是什么将是其他权衡。
或者您是否只为要提供的公共服务创建ApiController并坚持使用Web应用程序的控制器?
答案 0 :(得分:1)
如果您正在计划API,请使用ApiController。如果您正在使用Web UI,请使用经典的Controller。这就是两者的目的。
答案 1 :(得分:0)
这几乎就是我所处的情况,除了我使用的是Knockout.js而不是Backbone。我有创建和编辑的视图,并且在每个视图中都有一个非常复杂的Knockout.js UI,它可以在服务器上来回传递大量的JSON Ajax。
在MVC3下,我在同一个控制器中使用了许多JsonResult方法来渲染视图。我一直在尝试使用MVC4的RC,并且正在思考是否要使用API控制器来处理Ajax请求的“路径”(ho ho)。我喜欢强类型的HTTP类以及JSON.NET更集成的事实,但在这个阶段,我不得不说,为我自己的内部使用单独的API控制器的最终结果是感觉不对。和你一样,我发现我最终在安全性方面有很多重复,而且仅通过内容类型将相关逻辑分离,使事情变得更加混乱而不是更清晰。
所以在这一点上(虽然我已经知道变化无常)我计划继续使用标准的MVC控制器用于我当前的上下文,但如果我最终曝光,我将抓住机会使用闪亮的新Web API公共API。