我已经探索了ASP.net Web API框架和MVC 4.我理解使用仅返回数据的Web API,然后在客户端我们使用javascript,ajax来处理通过HTTP谓词的所有操作。另一方面,MVC控制器可以返回数据并查看我们可以通过控制器中的[HttpPost]处理事件。
我看到有些人在解决方案中创建了2个项目:一个是MVC 4中的Web API,另一个是MVC 4 Internet Application。这是个好主意吗?我没看到两种项目之间的关系。任何人都可以向我解释两个项目如何相互沟通,这种方式的优点和缺点是什么?
注意:在此解决方案中,他/她仍然使用Httppost处理事件并使用模型绑定使用MVC控制器返回视图。
答案 0 :(得分:1)
嗯,我想这将是一次务实的对话......
对于初学者来说,似乎Asp.net WebApi和Asp.net MVC将在Asp.Net V-Next中进行对齐,因此将会有一个基本控制器类将返回您希望的任何数据类型(ActionResult,Json等)。
从最近几年的经验来看,我认为趋势是拥有一个公开数据的WebApi和一个门户(客户端),它只是一个没有C#代码的JS Web应用程序,它只是从浏览器调用Api并执行它的操作需要做的。
这样我们基本上可以将一个hup保存到服务器(MVC服务器),我们可以直接从浏览器调用API。
然而,如果你保留MVC层,有些人仍然会争论你可以拥有的负载平衡,扩展,缓存等,但是所有这些事情都可以在WebApi和JS应用程序中完成......
长话短说,我想如果你想顺应趋势,我认为你应该使用RESTful API并让你的客户直接用浏览器从浏览器中调用它......