私は次のようなコントローラを持っています:
public ActionResult Save(string input, string name) {
//Some code
return PartialView();
}
そして、このコントローラーメソッドへのajax呼び出しが必要で、2つの引数inputとvalueを渡します
そして、私のajaxコールは以下のようなものです:
$.ajax({
url: '/Home/Save',
type: 'POST',
async: false,
dataType: 'text',
processData: false,
data: "input=" + JSON.stringify(data) + "&name =" + $("#name").val(),
success: function (data) {
}
});
名前パラメーターに値を渡すことができません。名前パラメーターの値がnullになっています。助けてください。
HTTP POSTを作成していますが、GETクエリ文字列構文でパラメーターを渡そうとしています。 POSTでは、データは名前付きパラメーターとして渡され、param=value&foo=bar
構文を使用しません。 jQueryのajaxメソッドを使用すると、次のように名前付きパラメーターでjavascriptオブジェクトを作成できます。
$.ajax({
url: '/Home/SaveChart',
type: 'POST',
async: false,
dataType: 'text',
processData: false,
data: {
input: JSON.stringify(IVRInstant.data),
name: $("#wrkname").val()
},
success: function (data) { }
});
@xdumainによる投稿に加えて、ajaxを呼び出す前にデータオブジェクトを作成して、デバッグできるようにします。
var dataObject = JSON.stringify({
'input': $('#myInput').val(),
'name': $('#myName').val(),
});
今、ajax呼び出しで使用します
$.ajax({
url: "/Home/SaveChart",
type: 'POST',
async: false,
dataType: 'json',
contentType: 'application/json',
data: dataObject,
success: function (data) { },
error: function (xhr) { } )};
この質問を手伝って
この関数の使用方法を見てみましょう
// 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;
}
そして今、それをAjax call
"ajax": {
url: '/Departments/GetAllDepartments/',
type: 'GET',
dataType: 'json',
data: getUrlVars()// here is the tricky part
},
それだけですが、知りたい場合はhow to use this function
またはnot send all the query string parameters
実際の回答 に戻る