wake-up-neo.com

So übergeben Sie mehrere Parameter von einem Ajax-Aufruf an MVC Controller

Ich habe den Controller wie folgt:

public ActionResult Save(string input, string name) {
    //Some code
    return PartialView();
}

Und ich brauche einen Ajax-Aufruf an diese Controller-Methode und übergeben die beiden Argumente input und value

Und mein Ajax-Anruf ist wie folgt:

$.ajax({
    url: '/Home/Save',
    type: 'POST',
    async: false,
    dataType: 'text',
    processData: false,
    data: "input=" + JSON.stringify(data) + "&name =" + $("#name").val(),
    success: function (data) {
    }
});

Ich kann den Wert nicht an den Namensparameter ...__ übergeben. Der Wert im Namensparameter wird zu Null. Bitte helfen Sie mir .. Vielen Dank im Voraus

18
DS kumar

Sie erstellen einen HTTP-POST, versuchen jedoch, Parameter mit der GET-Abfragezeichenfolgensyntax zu übergeben. In einem POST werden die Daten als benannte Parameter übergeben und verwenden nicht die param=value&foo=bar-Syntax. Mit der Ajax-Methode von jQuery können Sie ein Javascript-Objekt mit den genannten Parametern erstellen, z.

$.ajax({
  url: '/Home/SaveChart',
  type: 'POST',
  async: false,
  dataType: 'text',
  processData: false,    
  data: { 
      input: JSON.stringify(IVRInstant.data), 
      name: $("#wrkname").val()
  },
  success: function (data) { }
});
22
xdumaine

Zusätzlich zu den Beiträgen von @xdumain bevorzuge ich das Erstellen eines Datenobjekts vor dem Aufruf von ajax, damit Sie es debuggen können.

var dataObject = JSON.stringify({
                    'input': $('#myInput').val(),
                    'name': $('#myName').val(),
                });

Verwenden Sie es jetzt in einem Ajax-Aufruf

$.ajax({
          url: "/Home/SaveChart",
          type: 'POST',
          async: false,
          dataType: 'json',
          contentType: 'application/json',
          data: dataObject,
          success: function (data) { },
          error: function (xhr) { }            )};
2
Himalaya Garg

Ich habe das mit dieser Frage gemacht 

Jquery Abfragen von URL

so lassen Sie uns sehen wie wir werden diese Funktion verwenden 

// 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;
}

und jetzt verwenden Sie es einfach in Ajax call

"ajax": {
    url: '/Departments/GetAllDepartments/',                     
    type: 'GET',                       
    dataType: 'json',                       
    data: getUrlVars()// here is the tricky part
},

das ist alles, aber wenn Sie wissen wollen, how to use this function oder not send all the query string parameters zurück zu tatsächliche Antwort

0