应该WepApi控制器返回viewmodels

Eli*_*eth 6 asp.net-mvc-4 asp.net-web-api

WebApi非常适合使用带有KnockoutJS的javascript ViewModel的单页应用程序.

我的WebApi应该返回ac#ViewModel然后转换为Json ViewModel.

或者我的WebApi控制器应该返回一个业务对象并创建一个javascript视图模型?

我从未见过任何WebApi教程中的第一篇,我想知道为什么.

Dar*_*rov 9

我的WebApi应该返回ac#ViewModel然后转换为Json ViewModel

是的,一点没错.这样您就可以完全控制发送给客户端的内容.此外,如果您决定在新版API中更改基础业务模型,例如,您将不会破坏现有客户端.您需要做的就是调整业务模型和视图模型之间的映射.

或者我的WebApi控制器应该返回一个业务对象并创建一个javascript视图模型?

不,从未将您的商业模式发送给客户.您应该始终使用视图模型.

我从未见过任何WebApi教程中的第一篇,我想知道为什么.

我从来没有在任何ASP.NET MVC教程中看过第一个,我也不知道为什么.可能是因为教程没有涵盖真实世界的应用程序场景,而是代表过于简单的示例,这些示例可以让您开始使用某些技术.这很不幸,因为很多人都没有意识到在现实世界的应用程序中使用视图模型的重要性.StackOverflow是一个很好的地方,可以看到有多少人实际上没有意识到视图模型的重要性.

  • 我正在观看pluralsight/john papa的SPApp教程,在web项目中甚至没有模型文件夹,他真的将域实体返回到视图中.来自这样一个家伙的样本我简直不敢相信嘿嘿. (2认同)
  • `并且他真的将域实体返回到视图中 - 哦,我真的很抱歉听到这个. (2认同)