id = "send"のボタンをクリックすると、選択した行をコントローラに送信しようとしています。問題は、選択した行の値で他の値(この場合は数値と文字列)を送信しようとすると、選択された行の値がコントローラにnullを送信していますが、パラメーター。選択した行の値をコントローラに送信する際の問題MVC
これが唯一の私が選択した行の値を送信する場合、正常に動作します私のjavascriptのコードです:
$('#send').click(function() {
var items = {};
var grid = $('#grid').data('kendoGrid');
var selectedElements = grid.select();
for (var j = 0; j < selectedElements.length; j++) {
var item = grid.dataItem(selectedElements[j]);
items['grid[' + j + '].ParecidoCodigo'] = item.ParecidoCodigo;
}
$.ajax({
url: '@Url.Action("Index", "Busqueda")',
type: "POST",
async: false,
data: items,
success: function (result) {
console.log(result);
}
})
})
と、これは私のコントローラメソッドの処置:
public ActionResult Index(MarcaParecido[] grid)
{ ... }
すべてがnow.Butまで正常に動作します次のような別の値を送信しようとしました:
$('#send').click(function() {
var items = {};
var grid = $('#grid').data('kendoGrid');
var selectedElements = grid.select();
var enviarDest = $('#destinatario').val();
var marca = $('#numMarca').val();
for (var j = 0; j < selectedElements.length; j++) {
var item = grid.dataItem(selectedElements[j]);
items['grid[' + j + '].ParecidoCodigo'] = item.ParecidoCodigo;
}
$.ajax({
url: '@Url.Action("Index", "Busqueda")',
type: "POST",
async: false,
data: { items, marcas: marca, destinatario: enviarDest },
success: function (result) {
console.log(result);
}
})
})
選択した行の値ESはヌル私を送っているが、他の値は
nullではありませんこれが今の私のコントローラです:
public ActionResult Index(MarcaParecido[] grid, string marcas, string destinatario)
{...}
私もJSON.stringifyと試みたが、それは動作しません。
おかげで、。 –
なぜ私がやろうとしていたようにうまくいかなかったのか?そのようにパラメータを渡すことはできませんか? –
はい、キーと値のペアを持つオブジェクトを作成しているので、コードに 'data:{items、marcas:marca、destinatario:enviarDest} 'というコードがある場合、これは基本的に3つのペアのオブジェクトを構成します。配列(プロパティ名が何であるかはわかりません)ので、うまくシリアル化されません。名前と値のペアを1つのオブジェクトに保持することによって、それは直列化され、MVCが通常POST要求を処理する方法ですべてがサーバーに転送されます。 –