I avaitasp.net MVC 3 - charge utile lecture POST dans la méthode de commande paramterized
[HttpPost]
public ActionResult Foo()
{
// read HTTP payload
var reqMemStream = new MemoryStream(HttpContext.Request.BinaryRead(HttpContext.Request.ContentLength));
....
}
La charge utile est application/json; a bien fonctionné; puis j'ai changé à
public ActionResult Foo(string thing)
{
....
}
L'intention étant de poster à MyController/Foo?thing=yo
Maintenant, je ne peux pas lire la charge utile (la longueur est correcte, mais le flux est vide). Je suppose que la plomberie du contrôleur a mangé la charge utile à la recherche de données de poste de formulaire qui peuvent être mappés aux paramètres de la méthode. Est-il possible que je puisse arrêter ce comportement (MVC ne devrait sûrement pas avoir mangé une charge utile dont le type est marqué comme JSON, il devrait seulement regarder les données de formulaire).
public ActionResult Foo(string thing)
{
Request.InputStream.Position = 0;
var reqMemStream = new MemoryStream(HttpContext.Request.BinaryRead(HttpContext.Request.ContentLength));
....
}
Maintenant, cela étant dit, si vous envoyez une charge utile application/json
: au JSON mais je ne aime pas vraiment que
ty En ce qui concerne votre "pourquoi diable, ...", dans mon cas il n'y a pas de vues ou de modèles. Mes appels sont tous des appels AJAX purs. J'utilise simplement la partie C de MVC comme un cadre sympa pour le côté serveur 'REST'. Aussi le support de microsoft json n'est pas bon pour les types complexes, j'utilise json.net à la place – pm100
Request.InputStream.Position = 0; est une réponse valide. –