Comment passer un objet javascript C# MVC 4 contrôleur
Dans MVC4, comment voulez-vous passer un objet javascript C# contrôleur en AJAX?
Enfin, j'ai essayé ceci mais ça ne fonctionne pas.
Javascript côté Client:
var myData = {Propr1: '', Propr2: ''};
$.ajax({
type: 'POST',
data: JSON.stringify(myData),
url: '/Home/SubmitMyData',
contentType: 'application/json',
dataType: 'json',
success: alert('Youhou'),
error: alert('not good')
});
C#, côté Serveur méthode:
public ActionResult SubmitMyData(MyParamModel myParam)
{
//Do my stuff here with my parameter
return View();
}
public class MyParamModel
{
string Prop1 { get; set; }
string Prop2 { get; set; }
}
Mon paramètre est toujours null. J'ai essayé de changer le contentType mais toujours pas de travail.
Où sont mes erreurs? J'ai trouvé quelques posts mais je n'ai pas trouvé ce que je fait de mal.
Merci beaucoup.
[msdn.microsoft.com/en-us/magazine/hh781022.aspx](modèle liaison) serait utile de connaître les bases
OriginalL'auteur Régis NIOX | 2015-01-07
Vous devez vous connecter pour publier un commentaire.
Propr1
etPropr2
de l'objet javascript, mais dans le modèle C# vous avez euProp1
etProp2
(il manque le "r").stringify
les données avant de les envoyer, et de ne pas définirdataType
àjson
. MVC peut analyser l'amende juste avec une collection de paramètres post sans la sérialisation json dans votre code.contentType
, il n'est pas nécessaire. WebAPI devrait détecter automatiquement. Vous pouvez le laisser, mais il est hors de question.Javascript côté Client:
C#, côté Serveur méthode:
Je ne pense pas que le FromBody attribut approprié ici. L'OP est en utilisant MVC 4, pas d'API Web.
merci pour cette remarque, je pensais que c'était un WebAPI question à cause du titre.
Bon point. Peut-être l'OP doit ajuster le titre un peu :).
Désolé pour le titre. J'ai essayé de nouveau et il n'a pas travaillé pour moi :s Mon paramètre est toujours null
OriginalL'auteur danludwig
La valeur que vous avez pass pour la
data
de la propriété doit être un objet, pas une chaîne de caractères:la propriété noms doivent correspondre à:
vous devez utiliser le
[FromBody]
attribut sur votre valeur de paramètre:et les propriétés de votre type de modèle doivent être
public
:OriginalL'auteur JLRishe