J'ai le contrôleur comme ci-dessous:
public ActionResult Save(string input, string name) {
//Some code
return PartialView();
}
Et j'ai besoin d'un appel ajax à cette méthode de contrôleur et passe les deux arguments d'entrée et de valeur
Et mon appel ajax est comme ci-dessous:
$.ajax({
url: '/Home/Save',
type: 'POST',
async: false,
dataType: 'text',
processData: false,
data: "input=" + JSON.stringify(data) + "&name =" + $("#name").val(),
success: function (data) {
}
});
Je ne parviens pas à transmettre la valeur au paramètre name .. La valeur du paramètre name devient nulle .. merci de m'aider .. Merci d'avance.
Vous créez un HTTP POST, mais essayez de transmettre des paramètres avec la syntaxe de la chaîne de requête GET. Dans un POST, les données sont transmises sous forme de paramètres nommés et n'utilisent pas la syntaxe param=value&foo=bar
. La méthode ajax de jQuery vous permet de créer un objet javascript avec les paramètres nommés, comme suit:
$.ajax({
url: '/Home/SaveChart',
type: 'POST',
async: false,
dataType: 'text',
processData: false,
data: {
input: JSON.stringify(IVRInstant.data),
name: $("#wrkname").val()
},
success: function (data) { }
});
En plus des messages de @xdumain, je préfère créer un objet de données avant un appel ajax afin que vous puissiez le déboguer.
var dataObject = JSON.stringify({
'input': $('#myInput').val(),
'name': $('#myName').val(),
});
Maintenant, utilisez-le dans l'appel ajax
$.ajax({
url: "/Home/SaveChart",
type: 'POST',
async: false,
dataType: 'json',
contentType: 'application/json',
data: dataObject,
success: function (data) { },
error: function (xhr) { } )};
Je l'ai fait avec l'aide de cette question
jquery obtient une chaîne de requête à partir d'une URL
alors voyons comment nous allons utiliser cette fonction
// Read a page's GET URL variables and return them as an associative array.
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.Push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
et maintenant, utilisez-le dans Ajax call
"ajax": {
url: '/Departments/GetAllDepartments/',
type: 'GET',
dataType: 'json',
data: getUrlVars()// here is the tricky part
},
c'est tout, mais si vous voulez savoir how to use this function
ou not send all the query string parameters
, retournez à réponse réelle