16

我是 MVC 和 web api 的新手。所以我有几个关于 MVC 和 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 控制器中的任何功能吗?

谢谢

4

3 回答 3

11

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

ASP.NET MVC 用于 RPC 风格的应用程序,这意味着您的端点执行任意操作。因此,您可以拥有一个带有名为 FooBar 的操作的 PersonController,您可以通过 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- do-both/ ) 如果你也想的话。

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

于 2013-11-12T08:57:47.973 回答
9

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

2) 你只打算使用网络浏览器吗?使用 MVC。否则?使用 WebAPI 和 Web 浏览器/任何东西作为 WebAPI 的客户端。

3) 返回 json/xml。

4) 是的。

5) 更新一个对象。

6) 是的。

于 2013-11-12T08:49:30.560 回答
3

我认为您必须尝试以下 url 链接以进一步了解 Web API。它会解决你所有的疑惑。

http://www.asp.net/web-api

于 2013-11-12T08:50:40.927 回答