应该WepApi控制器返回viewmodels

时间:2013-02-16 15:41:01

标签: asp.net-mvc-4 asp.net-web-api

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

我的WebApi应该返回一个c#ViewModel,然后转换为Json ViewModel。

或者我的WebApi控制器是否应该返回业务对象并创建一个javascript viewmodel?

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

1 个答案:

答案 0 :(得分:9)

  

我的WebApi应该返回一个转换为Json ViewModel的c#ViewModel然后

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

  

或者我的WebApi控制器是否应该返回业务对象并创建一个javascript viewmodel?

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

  

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

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