- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 vanilla html/javascript 站点,我准备添加一些 WebApi 内容。在 asp.net 4 中,我只需从 NuGet 添加 WebApi,然后我就可以开始添加从 ApiController 继承的 ApiController(在全局文件中进行一些设置后)。
我在 ASP.NET 5 (vnext) 项目中试过这个,但没有成功。在添加 using System.Web.Http;
时确实摆脱了我类(class)中 ApiController
下的曲线:
[Route("api/contact/requestACall")]
public class ContactController : ApiController
{
}
...我在尝试编译时仍然遇到错误。
错误 CS0246 找不到类型或命名空间名称“Route”(是否缺少 using 指令或程序集引用?)[我的命名空间].DNX Core 5.0 [我的项目路径]\Controllers\ContactController .cs 5
错误 CS0246 找不到类型或命名空间名称“ApiController”(是否缺少 using 指令或程序集引用?)[我的命名空间].DNX Core 5.0 [我的项目路径]\Controllers\ContactController .cs 6
我在谷歌上搜索了几个小时,我能找到的每一个演练都是添加 MVC6 以添加 api Controller 。但是,我不需要此站点中的任何 MVC 功能,因为我使用的是 Angular 并在客户端执行所有这些操作。
如何在不携带所有这些 MVC 包袱的情况下使用 WebApi?我知道 ASP.NET 5 的全部意义在于确保您永远不必包含您不会使用的东西,所以我确信我遗漏了一些东西。
最佳答案
简短的回答是你不能。 vNext 中结合了多个框架。
ASP.NET MVC 的文档source 清楚地将这个特定的分支描述为: Model View Controller 框架,用于构建具有清晰分离关注点的动态网站,包括合并的 MVC、Web API 和带有 Razor 的网页。我对此的解释是,是的,它们在 vNext 下是完全合并的,不能也不应该分开。
此外,如果您查看 source对于 vNext 中的 ApiController
,您会发现包含以下引用:
using Microsoft.AspNet.Http;
using Microsoft.AspNet.Mvc;
using Microsoft.AspNet.Mvc.ActionResults;
using Microsoft.AspNet.Mvc.Actions;
using Microsoft.AspNet.Mvc.ModelBinding;
using Microsoft.AspNet.Mvc.ModelBinding.Validation;
using Microsoft.AspNet.Mvc.WebApiCompatShim;
这使得在没有 ASP.NET 5 中的核心 MVC 依赖项的情况下无法使用 ApiController
。
根据评论,如果您查看此 tutorial ,您会发现“WebAPI” Controller (主要负责返回 api 数据而不是 web 内容的 Controller )继承自 Controller
。
using Microsoft.AspNet.Mvc;
...
Route("api/[controller]")]
public class TodoController : Controller
总而言之,在 vNext 中,无论传输的内容类型如何,您都应该使用一个 Controller Controller
,而且它应该仅 来自 Microsoft.AspNet.Mvc
。
System.Web.Http
已被弃用,并且 Microsoft.AspNet.WebAPI
未在 vNext 中使用。
关于c# - 我可以在没有 MVC6 的情况下将 WebApi 添加到 ASP.NET 5 (vnext) 项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32577218/
这个问题在这里已经有了答案: How to reference csproj from kproj (4 个答案) 关闭 8 年前。 是否可以从 ASP.NET vNext 项目引用非 vNext
所以我在 VS 14 CTP 中有一个 ASP .NET vNext 项目。我的目标是 .NET Framework 4.5.1。我添加了对 NuGet 包的引用,它没有特定于 vNext 的构建。
我们过去常常运行 XAML 构建,在那里您可以从一个构建开始另一个构建,例如让 GC 在之后运行集成测试工作流程等等。 在 VNext 中无法触发其他构建。我们怎样才能做到这一点? 最佳答案 此功能正
嗨,我目前正在一个使用 PCL 库的项目中工作,我们正在将所有内容迁移到 .net 标准。我正在阅读 .net 标准什么是,什么不是,什么支持或不支持,我遇到了著名的版本/平台表(more info)
我为目前支持 MVC 2 - MVC 5 的开源库做出贡献,我也希望支持 MVC 6(及更高版本)。为了支持每个版本的 MVC,我们利用了 Condition MSBuild 的功能,在进行构建时包含
我没有看到这方面的任何文档,但看起来在 vNext 中,您可以愉快地使用非静态方法 void Main() 编译和运行应用程序。实际上,新的控制台应用程序模板为您提供了一个非静态 Main。例如: p
前提:我认为这是 TFS 2015 中的错误/缺失功能 当我使用 TFS 网站创建一个新的 Build(非 xaml)定义时,我无法使用命令行调用它 TFSBuild start命令。 如果我创建了一
我们将 Release Management 2015 与 vNext 发布模板一起使用。我们为应用程序的每个部分部署了一个基于 Powershell DSC 的组件,事实上,我们部署了两个不同的应用
我正在我的构建服务器上运行大量测试,完成所有测试需要一个多小时。一个小时后,它目前失败了: The job running on agent xAgentNamex has exceeded the
目前,我正在处理一个大型旧项目,该项目在构建后事件中每个C#项目文件都有一个复制作业(使用C#编写的自定义工具)。 发布后事件看起来像 "$(MyEnvVar)\_Build\_Binaries\Co
是否有可能使用开放数据库,如 mysql、mariadb 或其他数据库以及 ASP.NET vNext? 也许是测试版驱动程序或类似的东西? 最佳答案 对于 ASP.NET vNext,您可以选择面向
我有一个 vNext 构建定义,其中指定了一个代理池。此代理池有不止一个代理。我想指定此构建定义要使用的代理编号 2。我如何确保针对特定构建定义使用特定构建代理来运行构建? 最佳答案 您可以向该特定构
我有一个 vNext 构建定义,其中指定了一个代理池。此代理池有不止一个代理。我想指定此构建定义要使用的代理编号 2。我如何确保针对特定构建定义使用特定构建代理来运行构建? 最佳答案 您可以向该特定构
我安装了 Visual Studio 2015 RC 来试用 ASP.Net vNext 模板。在“Web”部分,我注意到一个控制台应用程序显示为 我决定把它弄乱,我发现了一些有趣的点: 默认模板未将
Language feature implementation status通过 C# Chat 引起了我的注意.关于 this existing question 中未涵盖的一些功能,我有几个问题.
今天微软正式发布上SQL Server 2016 SP1,根据以往的SP1定律,可以在生产环境上使用了。打了SP1的标准版将具有企业版几乎所有的的功能。只有RAM 超过128GB或者超过24核心或者
构建 vNext 任务是对之前构建过程的巨大改进。不过,一个缺点是我无法将某些任务设为有条件的。我可以为每个组合创建一个额外的构建,但是如果我们必须更改构建的其他部分,这显然会严重扩展并导致大量额外的
我有一个在 Visual Studio 2015 RC 中运行的 MVC6 站点 我有一些静态 HTML 文件,我想提供给另一个网站。我想添加 CORS 支持(无需添加 Controller 并以这种
我一直在摆弄 vNext 并让示例项目运行起来。我创建了一个 Ubuntu 虚拟机,安装了所需的软件包,并使用 k run 让它全部运行起来。 (控制台应用程序)和 k kestrel (MVC 应用
我们正在开发一个 ASP.NET MVC 5 项目,该项目依赖于来自不同解决方案的项目。另一个解决方案是常见的类库,我们发布为 NuGet 包。当我们发布时,我们编译项目并从 NuGet 存储库中获取
我是一名优秀的程序员,十分优秀!