MVC Core 2.2 URL 编码参数

空引用

我已将我的项目升级到 MVC Core 2.2,突然所有从查询或表单数据接收参数的 WEB Api 端点开始返回 415 Unsupported Media Type。

这是我的 web apis 中的示例方法

[HttpPut()]
public int Add(Entities.UserMember user)
{
    Service.UserCreate(user);
    return user.Id;
}

这在 MVC Core 2.1 接受来自 url 和 form 的情况下工作得非常好。现在看来我需要为每个端点指定一个特定的属性,而且似乎只能使用一个。有没有办法允许相同的行为,或者我需要更改我的代码并将 FromQuery() 添加到我的所有 api 方法中?

爱德华

对于这个问题,它是由[ApiController]功能引起的

在 ASP.NET Core 2.1 中,列表和数组等集合类型参数被错误地推断为 [FromQuery]。如果要从请求正文中绑定这些参数,则应将 [FromBody] 属性用于这些参数。此行为已在 ASP.NET Core 2.2 或更高版本中得到纠正,其中默认情况下推断集合类型参数是从主体绑定的。

参考:绑定源参数推断

有两种选择。

  1. [ApiController]从控制器中删除
  2. SuppressInferBindingSourcesForParameters由 true设置

    services.Configure<ApiBehaviorOptions>(options => {
        options.SuppressInferBindingSourcesForParameters = true;
    });
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MVC .NET中的URL参数编码

来自分类Dev

加密和编码URL参数spring mvc

来自分类Dev

MVC无法将值传递给URL上的2个参数之一

来自分类Dev

编码URL请求的参数

来自分类Dev

Net Core MVC API路由URL编码%20导致空指针

来自分类Dev

mvc 到 net core 2 迁移身份验证

来自分类Dev

Asp.Net MVC Core 2 - 在 _Layout 上使用 ViewBag

来自分类Dev

MVC中的URL编码令牌

来自分类Dev

将参数传递给MVC控制器中的方法时如何防止Url编码

来自分类Dev

将参数传递给MVC控制器中的方法时如何防止Url编码

来自分类Dev

用.htaccess重写2个参数的URL

来自分类常见问题

改造2-URL查询参数

来自分类Dev

用.htaccess重写2个参数的URL

来自分类Dev

.htaccess重写传递2个参数的URL

来自分类Dev

URL参数wso2esb

来自分类Dev

yii2 - 获取 URL 参数

来自分类Dev

ASP.Net MVC 2中的URL重写

来自分类Dev

Web API 2-静态服务-URL编码

来自分类Dev

Web API 2-静态服务-URL编码

来自分类Dev

Web API 2 将 URL 编码为 Google API

来自分类Dev

如何从编码的URL获取参数?

来自分类Dev

ASPNET Core MVC - 获取 url 的表单

来自分类Dev

如何在MVC中通过$ .getJson传递2个参数?

来自分类Dev

带参数的 ASP.Net Core 2 Razor AJAX GET?

来自分类Dev

下拉级联MVC 2

来自分类Dev

使用ASP .Net Core(非MVC)进行Angular 2路由

来自分类Dev

在ASP.NET MVC Core应用程序(RC2)中显示项目版本

来自分类Dev

如何从2个(或多个)独立下拉的ASP.NET Core MVC中获取数据?

来自分类Dev

将Azure B2C与MVC,.NET Core 3.1结合使用