我打算在我的应用程序中同时具有MVC和WebAPI功能。将会有一个管理站点使用简单的MVC CRUD控制器实现,我还需要从远程客户端调用RESTful API,并且可能会在未来从单个页面应用程序调用。 我不太习惯编写仅在返回类型上有所不同的类 - MVC控制器返回包装在View中的数据,WebAPI控制器仅返回数据。 在不重复太多代码的情况下达到目标的最佳方式是什么?WebApi和MVC控制器
1
A
回答
5
在我看来,如果你使用WebAPI,你的标准MVC控制器不应该用于CRUD。你的API控制器应该处理CRUD操作,你的MVC控制器应该返回视图。
通过走这条路,它给你几个不同的选择如何,你会在你的视图中显示的数据:
传统
如果你想坚持用更“传统“路由,你可以从你的MVC控制器调用你的WebAPI控制器服务器端,为一个模型对象提供水分并返回一个强类型的视图。您可以通过使用HttpClient类或WebClient类来完成此API调用和反序列化响应。
单页
如果你想尝试更“现代”的路线,你可以尝试danludwig建议什么,并建立更多的单页应用程序。在这种情况下,您的MVC控制器将返回一个HTML + JavaScript视图,该视图依赖于客户端框架进行API调用并更新DOM。 require + backbone + knockback/knockout堆栈是一个很好的开始,但它确实有一点学习曲线。
无论哪种方式,你真的应该只在一个地方有CRUD逻辑,我相信这属于API。
1
一种方法是让你的MVC控制器不返回强类型的视图模型。相反,他们可以返回纯HTML + JavaScript,可以使用骨干或基因敲除来调用您的Api操作方法并填充DOM。
相关问题
- 1. Autofixture和WebApi控制器
- 2. WebApi控制器
- 3. 单独的MVC和webAPI控制器路由
- 4. ASP.NET:在MVC和WebApi控制器之间共享HttpContext.Current.Cache
- 5. 在WebApi和MVC控制器之间共享逻辑?
- 6. MVC和WebApi控制器共享路由表吗?
- 7. 仅限webapicontroller或兼有控制器和webapi控制器
- 8. Url.Action用的WebAPI和控制器路由
- 9. Spring.NET AOP代理和MS WebAPI控制器
- 10. 的WebAPI和控制器矫枉过正
- 11. WebApi和控制器身份验证
- 12. 获取控制器webapi
- 13. 的WebAPI控制器重用
- 14. Angularjs和Asp.Net MVC控制器
- 15. IoC和ASP.NET MVC控制器
- 16. WebApi控制器和ODATA限制服务器端结果w/Nhibernate
- 17. MVC控制器
- 18. 从MVC控制器参数调用WebApi方法始终为空
- 19. VS.2015 MVC中的WebAPI没有帐户控制器视图?
- 20. 在ASP.NET MVC中找不到WebApi控制器
- 21. 转换MVC的WebAPI控制器WCF服务
- 22. 如何从WebAPI传递PDF并从MVC控制器读取PDF?
- 23. 在WebAPI项目中创建MVC控制器默认值
- 24. 性能的asp.net WebAPI与asp.net MVC控制器emmiting JSON?
- 25. ASP.NET MVC WebAPI作为经典控制器与之相同项目
- 26. 如何从MVC控制器操作方法调用WebApi方法?
- 27. 我应该在ASP.NET-MVC 5项目中存储WebAPI控制器?
- 28. MVC控制器,从WebAPI获取文件并返回FileResult
- 29. 从Mvc控制器消费WebApi - HttpClient或引用API程序集?
- 30. WebApi控制器在实体框架5和MVC 4项目中返回值