【发布时间】:2015-09-15 22:37:04
【问题描述】:
我有一个普通的 html/javascript 网站,我准备添加一些 WebApi 的东西。在 asp.net 4 中,我只需从 NuGet 添加 WebApi,然后我就可以开始添加从 ApiController 继承的 ApiControllers(在全局文件中进行一些设置之后)。
我在一个 ASP.NET 5 (vnext) 项目中尝试过,但没有成功。在我的课堂上添加using System.Web.Http; 时确实消除了ApiController 下的波浪线:
[Route("api/contact/requestACall")]
public class ContactController : ApiController
{
}
...我在尝试编译时仍然遇到错误。
Error CS0246 The type or namespace name 'Route' could not be found (are you missing a using directive or an assembly reference?) [my namespace].DNX Core 5.0 [my project path]\Controllers\ContactController.cs 5
Error CS0246 The type or namespace name 'ApiController' could not be found (are you missing a using directive or an assembly reference?) [my namespace].DNX Core 5.0 [my project path]\Controllers\ContactController.cs 6
我已经用谷歌搜索了几个小时,我能找到的每一个演练都是添加 MVC6 以添加 api 控制器。但是,我不需要此站点中的任何 MVC 功能,因为我使用 angular 并在客户端上完成所有这些操作。
如何在不随身携带所有 MVC 包袱的情况下使用 WebApi?我知道 ASP.NET 5 的全部意义在于确保您永远不必包含您不会使用的东西,所以我确信我遗漏了一些东西。
【问题讨论】:
-
这不是你习惯的 MVC “包袱”。在 vNext/ASP.NET 5 中,这两个框架都被整合到一个单一的、流线型的 API 中,它充分利用了两者的优点。在过去,离开 MVC 可能是值得的,但这是一个大胆的新世界,它需要一种新的思维方式。旧规则不再适用:)
-
你是说WebApi不能单独使用?你能肯定地说这个吗?我想知道为什么还要有单独的包。
-
github.com/aspnet/Mvc 源文档清楚地描述了这个特定的分支:模型视图控制器框架,用于构建具有清晰关注点分离的动态网站,包括合并的 MVC、Web API 和网页 w /剃刀。我对此的解释是,是的,它们是完全合并的,不能也不应该在 vNext 下分开。
标签: c# asp.net asp.net-web-api