Je migre une application ASP.NET MVC 4 vers ASP.NET Core 2.1 et jusqu'à présent, presque tout se passe bien.
J'ai un contrôleur avec une action qui ressemble à ceci :
public class SomeApiController : Controller
{
public ActionResult Post(Model model, int key1, string key2)
{
model.Key1 = key1;
model.Key2 = key2;
return Json(model);
}
}
Le Model
est :
public class Model
{
public string Text { get; set; }
public int Number { get; set; }
public int Key1 { get; set; }
public string Key2 { get; set; }
}
Je peux envoyer un corps json qui contient n'importe laquelle des propriétés de Model
avec une combinaison de paramètres de requête et MVC 4 liera toujours correctement le corps à model
, key1
et key2
.
Le type de requête le plus nécessaire qui fonctionne dans MVC 4 ressemble à ceci :
POST /SomeApi/Post
{
"model": {
"text": "some-text",
"number": 1
},
"key1": 42,
"key2": "some-text-2"
}
ou comme ceci :
POST /SomeApi/Post?key1=42&key2=some-text-2
{
"model": {
"text": "some-text",
"number": 1
}
}
Veuillez prêter attention à la valeur model
imbriquée dans le json.
Cela sera correctement lié aux paramètres d'action appropriés, mais cela ne fonctionne pas sur ASP.NET Core 2.1, du moins par défaut.
Ce qui fonctionne évidemment dans ASP.NET Core 2.1 :
POST /SomeApi/Post?key1=42&key2=some-text-2
{
"text": "some-text",
"number": 1
}
Question : est-il possible de somehow supporter le comportement de liaison de MVC 4 dans ASP.NET Core 2.1 afin de ne pas avoir à réécrire une énorme quantité de requêtes frontend et/ou de modélisation backend ?