WebApi非常适合使用带有KnockoutJS的
javascript viewmodel的单页应用程序.
我的WebApi应该返回一个c#viewmodel然后转换为Json viewmodel.
或者我的WebApi控制器应该返回一个业务对象并创建一个javascript视图模型?
我从未见过任何WebApi教程中的第一篇,我想知道为什么.
解决方法
Should my WebApi return a c# viewmodel which gets converted to a Json viewmodel then
是的,一点没错.这样您就可以完全控制发送给客户端的内容.此外,如果您决定在新版API中更改基础业务模型,例如,您将不会破坏现有客户端.您需要做的就是调整业务模型和视图模型之间的映射.
Or should my WebApi controller return a business object and create a javascript viewmodel?
不,从未将您的商业模式发送给客户.您应该始终使用视图模型.
I have never seen the first in any WebApi tutorial and I wonder why.
我从来没有在任何ASP.NET MVC教程中看过第一个,我也不知道为什么.可能是因为教程没有涵盖真实世界的应用程序场景,而是代表过于简单的示例,这些示例可以让您开始使用某些技术.这很不幸,因为很多人都没有意识到在现实世界的应用程序中使用视图模型的重要性. StackOverflow是一个很好的地方,可以看到有多少人实际上没有意识到视图模型的重要性.