tipo por parámetros parametros mvc modelo llamar lista enviar desde controlador jquery ajax asp.net-mvc model-binding

por - llamar a un controlador desde jquery



Cómo pasar múltiples parámetros desde una llamada ajax a un controlador MVC (4)

Tengo el controlador como el siguiente:

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

Y necesito una llamada ajax a este método de controlador y pasar los dos argumentos, entrada y valor

Y mi llamada ajax es como la siguiente:

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

No puedo pasar el valor al parámetro de nombre. El valor del parámetro de nombre se está volviendo nulo. Por favor, ayúdame. Gracias de antemano.


Además de las publicaciones de @xdumain, prefiero crear un objeto de datos antes de la llamada ajax para que pueda depurarlo.

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

Ahora utilízalo en llamada ajax

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


Está realizando una POST HTTP, pero tratando de pasar parámetros con la sintaxis de cadena de consulta GET. En un POST, los datos se pasan como parámetros con nombre y no utilizan la sintaxis param=value&foo=bar . El uso del método ajax de jQuery le permite crear un objeto javascript con los parámetros nombrados, de esta manera:

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


Hice eso con la ayuda de esta pregunta.

jQuery obtener cadenas de consulta de la URL

así que vamos a ver cómo vamos a utilizar esta función

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

Y ahora solo usalo en Ajax call

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

eso es todo, pero si desea saber how to use this function o not send all the query string parameters a la respuesta real


$.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "ChnagePassword.aspx/AutocompleteSuggestions", data: "{''searchstring'':''" + request.term + "'',''st'':''Arb''}", dataType: "json", success: function (data) { response($.map(data.d, function (item) { return { value: item } })) }, error: function (result) { alert("Error"); } });