asp.net-mvc - 为什么人们在 MVC 中使用 Web API Controller

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

我是 MVC 和 Web api 的新手。所以我有几个关于 MVC 和 Web api 使用的问题。

1) 我看到人们在 MVC 中使用 Web API Controller 而不是 MVC 默认 Controller 。我想知道原因和优点。

2) 还指导我什么时候应该使用 MVC 默认 Controller 以及什么时候应该在 MVC 中使用 Web API Controller 而不是 MVC 默认 Controller ?

3)当我们使用Web API Controller 时有什么限制。

4) 我们可以在 Web API Controller 中使用任何函数名称声明任何公共(public)和私有(private)方法,而不是 get() put() delete() 等。

5) put() 函数的用途是什么?

6) 我们可以重写 Web API Controller 中的任何函数吗?

谢谢

最佳答案

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

ASP.NET MVC 用于 RPC 风格的应用程序,这意味着您的端点可以执行任意操作。因此,您可以拥有一个具有名为 FooBar 的操作的 PersonController,并且可以通过 GETting domain.com/person/foobar 来调用该过程。

Web API(主要)用于 REST(尽管也支持 RPC)。这意味着您的 Controller 公开了您随后可以获取、发布、放置或删除的资源。所以你的Web API中的PersonController将有一个Get方法和一个Post方法等。

您可以在 API Controller 类中声明您喜欢的任何方法。在 100% 纯 REST Controller 中,您将拥有映射到 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 函数用于处理 HTTP 动词 PUT。因此,如果您有一个具有 Put 方法的 PersonController,您将在该方法中使用,例如处理人员实例的更新。

关于asp.net-mvc - 为什么人们在 MVC 中使用 Web API Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19924550/

相关文章:

asp.net-mvc - 如何将模型包含在 RedirectToAction 中?

c# - 模型更改后更新数据库 - Entity Framework 7

asp.net-web-api - 印度铁路列车搜索 API

c# - OWIN ASP.NET - 避免在 Web Api 中没有身份的同一帐户多次登录

c#-4.0 - C# Unity InjectionFactory 不工作

asp.net - 如何在 IIS 上限制/验证文件上传文件类型服务器端

asp.net-mvc - Ninject 绑定(bind)到不同的 Controller

asp.net-mvc - 在 MVC5 中使用 Razor 渲染部分 View

c# - 如何使用 aspnet ApiVersioning 在 Swashbuckle 中配置 MultipleApiVersions

c# - 使用 URL c# 的 Web-Api 版本控制