ASP.NET Core, MVC : Comment obtenir des premières JSON lié à une chaîne sans un type?

Similaire à cette vieille question avant ASP.NET versions, je veux obtenir le corps de la requête HTTP POST à être lié à une chaîne. Il semble que la méthode de lie, mais que value est nulle, lorsque ASP.NET appelle ma méthode de contrôleur:

namespace Demo.Controllers
{

    [Route("[controller]")]
    public class WebApiDemoController : Controller
    {
    ...

    //POST api/values
    [HttpPost]
    public System.Net.Http.HttpResponseMessage Post([FromBody]string value)
    {
       //expected: value = json string, actual: json = null.
    }

Dois-je aller chercher le corps à partir d'un flux? Ou devrait-il juste de travail? Lors de l'essai de la méthode ci-dessus, j'ai utilisé les en-têtes http suivant:

Accept: Application/json
Content-Type: Application/json;charset=UTF-8

Je suis de passage dans la suite dans le corps: { "a": 1 }

Je ne veux PAS lier à une variable de chaîne nommée. Je veux lier tout JSON-je, puis-je utiliser le contenu JSON, tout contenu arbitraire à tous, à partir de l'intérieur de ma méthode.

Si j'ai bien compris la documentation, le [FromBody] attribut doit avoir fait ce que je voulais, mais je devine que l'ASP.NET core, MVC mécanisme de liaison ne se lient pas au format json à une "chaîne de valeur", mais je pourrais peut-être faire autre chose qui m'a un niveau équivalent de flexibilité.

Une question similaire ici me donne l'idée peut-être que je l'aurais écrit [FromBody] dynamic data au lieu d'utiliser [FromBody] string value.

Mise à jour: Ce genre de truc doit être pensé avant de le faire, parce que si vous voulez avoir le .net framework poignée JSON et XML codant pour vous, vous juste tué la capacité. Certains types de REPOS serveurs peuvent et souvent ont des exigences à l'appui de XML et JSON des types de contenu, au moins ceux que j'ai rencontrés qui ont des documents de normes.

  • Avez-vous vérifié que rien n'est réellement passé dans le corps de la requête? Fiddler?
  • Viens de vérifier dans un violon et le contenu du corps est très bien.
  • Votre le passage d'un nom/valeur paire a: 1 de sorte que le paramètre devra être string a (en supposant que votre attend à recevoir 1
  • Je ne veux pas d'un modèle concret type de classe, au départ je voulais une chaîne de caractères, mais je pense que peut-être ce que j'ai vraiment besoin de faire est d'utiliser dynamique ici. stackoverflow.com/questions/23135403/...
InformationsquelleAutor Warren P | 2015-08-11