我能以某种方式支持ASP.NET Core 2.1中的MVC 4操作参数绑定行为吗?

问题描述 投票:2回答:1

我正在将ASP.NET MVC 4应用程序迁移到ASP.NET Core 2.1,到目前为止,几乎所有事情进展顺利。

我有一个控制器,其动作如下所示:

public class SomeApiController : Controller
{
    public ActionResult Post(Model model, int key1, string key2)
    {
        model.Key1 = key1;
        model.Key2 = key2;
        return Json(model);
    }
}

Model是:

public class Model
{
    public string Text { get; set; }
    public int Number { get; set; }
    public int Key1 { get; set; }
    public string Key2 { get; set; }
}

我可以发送包含Model的任何属性以及查询参数组合的json正文,MVC 4始终会正确将正文绑定到modelkey1key2

在MVC 4中最需要的请求类型如下:

POST /SomeApi/Post

{
    "model": {
        "text": "some-text",
        "number": 1
    },
    "key1": 42,
    "key2": "some-text-2"
}

或类似这样:

POST /SomeApi/Post?key1=42&key2=some-text-2

{
    "model": {
        "text": "some-text",
        "number": 1
    }
}

[请注意json中嵌套的model值。

这将正确地绑定到适当的操作参数,但它在ASP.NET Core 2.1上不存在],至少默认情况下是。

[在ASp.NET Core 2.1中明显起作用的地方:

POST /SomeApi/Post?key1=42&key2=some-text-2

{
    "text": "some-text",
    "number": 1
}

问题:我可以以某种方式在ASP.NET Core 2.1中支持MVC 4绑定行为,所以我不需要重写大量的前端请求和/或后端建模吗?

我正在将ASP.NET MVC 4应用程序迁移到ASP.NET Core 2.1,到目前为止,几乎所有事情进展顺利。我有一个控制器,其动作如下所示:public class SomeApiController:...

c# asp.net-mvc asp.net-core asp.net-core-mvc asp.net-core-2.1
1个回答
0
投票

更改接收参数类型(在参数前添加[Frombody]

© www.soinside.com 2019 - 2024. All rights reserved.