我是MVC& web api.so我有几个关于MVC& amp; web api用法。
1)我已经看到人们在MVC中使用Web API控制器而不是MVC默认控制器。我想知道原因和优势。
2)还指导我何时应该使用MVC默认控制器,何时应该在MVC中使用Web API控制器而不是MVC默认控制器?
3)当我们使用Web API控制器时,有什么限制。
4)我们可以宣布任何公开& Web API控制器中的私有方法,具有任何函数名称而不是get()put()delete()等。
5)什么是put()函数?
6)我们可以覆盖Web API控制器中的任何函数吗?
感谢
答案 0 :(得分:11)
Web API和ASP.NET MVC是两种不同的野兽。
ASP.NET MVC用于应用程序的RPC样式,这意味着您的端点执行任意操作。所以你可以让PersonController有一个名为FooBar的动作,你可以通过GETting domain.com/person/foobar调用该程序。
Web(主要)用于REST(尽管也支持RPC)。这意味着您的控制器会公开您随后GET或POST或PUT或DELETE的资源。因此,Web API中的PersonController将具有Get方法和Post方法等。
您可以在API控制器类中声明您喜欢的任何方法。在100%纯REST控制器中,您将拥有映射到HTTP谓词的方法(即Get,Post,Put,Delete)。如果您愿意,也可以使用Web API路由机制将URL映射到某个操作(请参阅此处:http://encosia.com/rest-vs-rpc-in-asp-net-web-api-who-cares-it-does-both/)。
put-function用于处理HTTP动词PUT。因此,如果您有一个带有Put方法的PersonController,那么您将使用该方法,例如处理人员实例的更新。
答案 1 :(得分:9)
1)使用WebAPI控制器,您只需返回json / xml,从而产生一个优势:您可以使用任何客户端,而不仅仅是Web浏览器。您也可以在WebAPI中默认获得GET ajax。
2)您是否只会使用网络浏览器?使用MVC。除此以外?使用WebAPI和Web浏览器/作为WebAPI的客户端。
3)返回json / xml。
4)是的。
5)更新对象。
6)是的。
答案 2 :(得分:3)
我认为你必须尝试使用url链接来进一步了解Web API。它将解决你所有的疑问。