Passage de paramètres dans l'appel ajax
Je suis en train de faire un appel ajax à la méthode de contrôleur. sans paramètre, il fonctionne très bien. Une fois que j'ai ajouter le paramètre je reçois toujours un paramètre null à la cotroller. Je pense que j'ai bien fait le passage de paramètres dans l'appel ajax.
<script type="text/javascript">
$(document).ready(function () {
$('#lstStock').change(function () {
var serviceURL = '<%= Url.Action("GetStockPrice", "Delivery") %>';
var dropDownID = $('select[id="lstStock"] option:selected').val();
alert(dropDownID); //here i get the correct selected ID
$.ajax({
type: "POST",
url: serviceURL,
data: '{"stockID":"' + dropDownID + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: successFunc,
error: errorFunc
});
function successFunc(data, status) {
alert(data.Result);
}
function errorFunc() {
alert('error');
}
})
});
</script>
Contrôleur:
[HttpGet]
public ActionResult GetStockPrice()
{
return View();
}
[HttpPost]
[ActionName("GetStockPrice")]
public ActionResult GetStockPrice1(string stockID)//I get the null parameter here
{
DeliveryRepository rep = new DeliveryRepository();
var value = rep.GetStockPrice(stockID);
return Json(new { Result = value }, JsonRequestBehavior.AllowGet);
}
OriginalL'auteur chamara | 2013-05-07
Vous devez vous connecter pour publier un commentaire.
C'est parce que vous traitez les données sous forme de chaîne de
vous pouvez le modifier:
dans certains cas, en fonction du paramètre déclaré dans votre méthode de contrôleur, vous avez besoin de sérialiser les données. Si vous avez besoin de le faire alors voici comment vous pouvez le faire:
Vous avez besoin de la
contentType: "application/json"
lors stringify pour dire au navigateur d', bien, envoyer les données en json. La valeur par défaut contentType fonctionnera lors de son passage dans les données, tels que{ stockID: dropDownID }
comme il est interprété comme un json valide de l'objet/de données.OriginalL'auteur von v.
essayer
data: { stockID : dropDownID},
Vérifier ICI
OriginalL'auteur AliRıza Adıyahşi
Essayer de préciser:
On dirait que vous êtes de passage jusqu'
"stockID"
passtockID
.Un bon outil à utiliser pour ce est Fiddler, il vous permettra de voir si le Contrôleur de l'action est atteint et que les données ont été envoyées jusqu'au serveur.
OriginalL'auteur Darren