ASP.NET CORE 2.0 中的 FromUri

Posted

技术标签:

【中文标题】ASP.NET CORE 2.0 中的 FromUri【英文标题】:FromUri in ASP.NET CORE 2.0 【发布时间】:2018-06-20 01:41:53 【问题描述】:

这个问题是因为在我使用 ASP.NET CORE 2.0 的 MVC 项目中,我无法将 [FromUri] attribute 添加到我的驱动程序中。

我尝试使用像 System.Web.Http 这样的库,但我不认识它们。然后从 Nuget Microsoft.AspNet.WebApi.Core "and" System.AppDomain.NetCoreApp 安装这些,导致能够使用 System.Web.Http 但由于歧义问题我不允许使用它,但如果我发现 [FromUri] 存在。

主要问题是在 ASP.NET core 2.0 MVC 或 WebApi 中是否存在[FromUri]

如果存在,如何使用?

【问题讨论】:

【参考方案1】:

TLDR :您可以使用 [FromQuery][FromRoute] 代替 [FromUri]


正如 Mike_G 在他的 answer 中所说,您可以使用 [FromQuery] 属性代替 [FromUri]。但在某些情况下,您可能还需要使用 [FromRoute],正如 cmets 中 Muhammad Umar 所指出的那样。

FromRoute

当参数作为 URL 字符串的一部分传递时使用此属性。

例如:api/countries/1

FromQuery

顾名思义,FromQuery 参数必须作为查询字符串传递。

例如:api/countries?id=1

参考资料:

    FromRoute - Microsoft Docs FromQuery - Microsoft Docs FromUri - Microsoft Docs

【讨论】:

【参考方案2】:

我想你可能正在寻找[FromQuery]: https://docs.microsoft.com/en-us/aspnet/core/mvc/models/model-binding#customize-model-binding-behavior-with-attributes

[FromUri] 用于 Asp.Net WebApi 2,而不是 asp.net 核心

【讨论】:

@AlexisZapata 您忘记将 Make 的回复标记为您问题的答案 参见 [FromRoute] 或 [FromQuery]。

以上是关于ASP.NET CORE 2.0 中的 FromUri的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET CORE 2.0 中的 FromUri

ApplicationUser在Asp.Net Core 2.0中的ActionFilter中?

ASP.NET Core 2.0 中的应用程序变量

如何将 UserManager 注入 ASP.NET Core 2.0 中的另一个服务

带你做 WebAPI 迁移 ASP.NET Core 2.0

Asp.NET Core 2.0 API 控制器中的 User.Identity.Name 为空