为什么人们在MVC中使用Web API控制器

Tho*_*mas 16 asp.net-mvc asp.net-web-api

我是MVC和web api的新手.所以我对MVC和web api的使用有几个问题.

1)我已经看到人们在MVC中使用Web API控制器而不是MVC默认控制器.我想知道原因和优势.

2)还指导我何时应该使用MVC默认控制器,何时应该在MVC中使用Web API控制器而不是MVC默认控制器?

3)当我们使用Web API控制器时有什么限制.

4)我们可以使用任何函数名称而不是get()put()delete()等声明Web API控制器中的任何公共和私有方法.

5)什么是put()函数?

6)我们可以覆盖Web API控制器中的任何功能吗?

谢谢

Jac*_*hde 11

Web API和ASP.NET MVC是两种不同的野兽.

ASP.NET MVC用于RPC样式的应用程序,这意味着您的端点执行任意操作.因此,您可以让PersonController具有名为FooBar的操作,您可以通过GETting domain.com/person/foobar调用该过程.

Web API(主要用于)用于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-确实,这两个/),如果你想太多.

put-function用于处理HTTP动词PUT.因此,如果您有一个带有Put方法的PersonController,您将在该方法中处理例如处理人员实例的更新.


dan*_*ozo 9

1)使用WebAPI控制器,您只需返回json/xml,从而产生一个优势:您可以使用任何客户端,而不仅仅是Web浏览器.您也可以在WebAPI中默认获得GET ajax.

2)您是否只会使用网络浏览器?使用MVC.除此以外?使用WebAPI和Web浏览器/作为WebAPI的客户端.

3)返回json/xml.

4)是的.

5)更新对象.

6)是的.