【问题标题】:Why people use Web API controller in MVC [closed]为什么人们在 MVC 中使用 Web API 控制器 [关闭]
【发布时间】:2013-11-12 17:07:35
【问题描述】:

我是 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 控制器中的任何函数吗?

谢谢

【问题讨论】:

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


    【解决方案1】:

    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-does-both/)。

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

    【讨论】:

      【解决方案2】:

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

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

      3) 返回 json/xml。

      4) 是的。

      5) 更新一个对象。

      6) 是的。

      【讨论】:

      • 1.您也可以从 MVC 控制器返回 json/xml。 2.Use WebAPI and MVC as a client to WebAPI你为什么要这么做?
      • 是的,你可以,但这是你在 WebAPI 中已经通过“返回变量”和内容格式化程序所做的额外工作。 2. 我的错,指的是 JS/Web,正在修复。
      • 即使我们目前打算使用网络浏览器,我们也可以使用 Web API。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-26
        • 1970-01-01
        • 2015-12-28
        • 2018-06-18
        • 1970-01-01
        • 2017-11-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多