0
我試圖將選定的行發送到控制器,當我點擊ID =「發送」按鈕。問題是,當我試圖用選定的行值發送其他值(在本例中是一個數字和一個字符串)時,選定的行值向控制器發送空值,但控制器中的數字和字符串不爲空參數。將選定行值發送到控制器的問題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是給我空,但其他值不爲空
這是我現在的控制器:
public ActionResult Index(MarcaParecido[] grid, string marcas, string destinatario)
{...}
我JSON.stringify嘗試過,但它不工作。
謝謝,這對我有很大的幫助。 –
任何想法爲什麼不按我想要做的方式工作?這種方式不可能傳遞參數嗎? –
是的,因爲你用鍵/值對創建一個對象,但是當代碼有'data:{items,marcas:marca,destinatario:enviarDest}'時,這基本上構造了3對對象,第一對是數組(不知道屬性名稱是什麼),因此不能很好地序列化。通過將名稱/值對保留在一個對象中,它可以很好地序列化,然後將所有內容以MVC通常處理POST請求的方式傳輸到服務器。 –