J'ai une action de contrôleur qui prend un document JSON comme le corps d'une requête POST. J'aimerais créer automatiquement un JObject
de cela, par modèle de liaison, comme ceci:Dans ASP.NET MVC, puis-je modéliser automatiquement un lien vers un JObject à partir du corps POST?
[HttpPost]
public ActionResult Index([FromBody] JObject data)
{
// "data" is now a populated JObject object
}
Mais je reçois des erreurs de ne pas créer une classe abstraite. J'ai essayé d'étendre quelque chose de JObject
, mais ce ne serait pas non plus le cas.
Je sais que je peux juste lire le corps de la demande et appeler JObject.Parse
dessus (je fais ceci, ainsi cela fonctionne), mais mon idée d'en haut semble tellement plus élégante.
Est-ce possible?
Edit: L'erreur réelle est:
System.MissingMethodException: Cannot create an abstract class.
[MissingMethodException: Cannot create an abstract class.]
System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
[Stack trace continues...]
La demande ne fait jamais dans l'action du contrôleur.
D'après mes recherches JObject
n'est pas abstraite, mais juste pour être sûr, je l'ai fait:
public class Entry : JObject
Puis
public ActionResult Index([FromBody] Entry data)
ne fonctionne pas. Même erreur
est votre JSON d'un document de type jobject? – CodingYoshi
'JObject' est juste un objet générique pour contenir JSON de n'importe quel type. Un peu comme 'XmlDocument' contient du XML de n'importe quel type. Ceci provient de la bibliothèque 'JSON.Net'. – Deane
Est-ce que 'FromBody' est quelque chose que vous avez créé? – CodingYoshi