【问题标题】:Where is MVC in Web API?Web API 中的 MVC 在哪里?
【发布时间】:2014-07-11 11:49:08
【问题描述】:

我正在尝试联系WebAPI,所以如果这个问题太天真而无法提问,请原谅。

听说WebAPI 正在使用MVC 并集成到其中。

刚刚创建了一个示例WebAPI 项目,但在References 下我发现不是System.Web.Mvc dll。

为什么?还是我错过了什么重要的东西?

编辑:

关于System.Web.Mvcthe MSDN says the following paragraph

System.Web.Mvc 命名空间包含支持用于创建 Web 应用程序的 ASP.NET 模型视图控制器 (MVC) 框架的类和接口。此命名空间包括表示控制器、控制器工厂、操作结果、视图、部分视图、模型绑定器等的类。

【问题讨论】:

  • 你在创建WebAPI项目时遵循了什么步骤,应该是新项目-> ASP.NET MVC4 Web应用程序-> Web API-> OK
  • @Habib:刚刚创建了一个空的ASP.NET Empty Web API 2 项目。但是,System.Web.Mvc 应该在那里
  • @nowhewhomustnotbenamed。否 - MVC 与 Web API 是分开的。
  • @Zabavsky: System.Web.HTTP 包含有关 APIControllers 的信息。你说的对。谢谢:)
  • 新建项目 > Web > ASP.NET Web 应用程序 > Web API > 确定。这应该可以工作,Add folders and core references for: MVC and Web API 应该会自动勾选。

标签: c# .net asp.net-mvc asp.net-web-api asp.net-mvc-5


【解决方案1】:

而且它不应该在那里。 ASP.NET Web API 与 MVC 非常相似,但没有与 MVC 集成或其他任何东西。 Web API 可以完全完美地存在于 MVC 框架之外。这很好 - 在构建 HTTP 服务时,您不希望在项目中包含任何 HTML 呈现功能。

这样想 - System.Web.Mvc 包含 MVC 使用的面向最终用户的功能,例如视图、查看结果。 WebAPI 不是面向最终用户的东西,它不会生成 HTML 或运行 javascript。 Web API 的目的是提供创建 HTTP 服务的方法——与 MVC 框架非常不同。

MVC 和 Web API 有几个相似的方法。以控制器为例。看起来它们在两个框架中的行为相似。但是,您可能会发现实现方式有所不同。 MVC 使用System.Web.Mvc.Controller,而Web API 使用System.Web.Http.ApiController。更详细的解释原因是here。另一方面 - 路由。两个框架都使用相同的路由实现,位于System.Web.Routing

框架相似,但可以完全独立存在。这就是为什么它们之间没有引用。

【讨论】:

    【解决方案2】:

    对于 Visual Studio Express 2013 for Web,请执行以下操作:

    New Project > Web > ASP.NET Web Application > Web API > OK

    这应该可以,Add folders and core references for: MVC and Web API 应该会被 VS 自动勾选。

    100% 工作 - 我刚刚创建了一个项目,所有的参考都在那里。

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2018-02-08
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多