我打算在我的應用程序中同時具有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. ASP.NET:在MVC和WebApi控制器之間共享HttpContext.Current.Cache
- 4. MVC和WebApi控制器共享路由表嗎?
- 5. 單獨的MVC和webAPI控制器路由
- 6. 在WebApi和MVC控制器之間共享邏輯?
- 7. 僅限webapicontroller或兼有控制器和webapi控制器
- 8. 的WebAPI和控制器矯枉過正
- 9. Spring.NET AOP代理和MS WebAPI控制器
- 10. WebApi和控制器身份驗證
- 11. 的WebAPI控制器重用
- 12. 獲取控制器webapi
- 13. Angularjs和Asp.Net MVC控制器
- 14. IoC和ASP.NET MVC控制器
- 15. WebApi控制器和ODATA限制服務器端結果w/Nhibernate
- 16. MVC控制器
- 17. 從Mvc控制器消費WebApi - HttpClient或引用API程序集?
- 18. 性能的asp.net WebAPI與asp.net MVC控制器emmiting JSON?
- 19. 轉換MVC的WebAPI控制器WCF服務
- 20. 如何從WebAPI傳遞PDF並從MVC控制器讀取PDF?
- 21. MVC控制器,從WebAPI獲取文件並返回FileResult
- 22. 我應該在ASP.NET-MVC 5項目中存儲WebAPI控制器?
- 23. VS.2015 MVC中的WebAPI沒有帳戶控制器視圖?
- 24. 如何從MVC控制器操作方法調用WebApi方法?
- 25. 在ASP.NET MVC中找不到WebApi控制器
- 26. 在WebAPI項目中創建MVC控制器默認值
- 27. ASP.NET MVC WebAPI作爲經典控制器與之相同項目
- 28. WebApi控制器在實體框架5和MVC 4項目中返回值
- 29. WebApi控制器沒有發現控制器的動作
- 30. .Net MVC WebApi和Angular2