我正在将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始终会正确将正文绑定到model
,key1
和key2
。
在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:...
更改接收参数类型(在参数前添加[Frombody]