Sto volendo passare un dizionario di tipo <int,int>
al mio controller tramite un post Ajax. Il motivo principale qui è che il post può avere tra 1-3 coppie di valori chiave qui (nessuno di questi valori è noto al momento della compilazione) e in futuro potrebbe arrivare a 5.pass dizionario per controller asp.net mvc
Anche nel post ho per passare altri dati, come Id e nome, che funzionano tutti normalmente.
Come dovrei costruire questo dizione in javascript, quindi inviarlo tramite il post di JQuery e infine riceverlo sul controller da elaborare?
Modifica 2: Ho deciso di risolvere questo con un post per ogni valore invece di cercare di passare un dizionario.
EDIT: Qui è la mia fonte per la funzione in modo da poter vedere quello che sto cercando:
function BindAddMenuItem() {
$(".AddMenuItem").click(function (e) {
e.preventDefault();
//get header id from link by removing addmenuitem from this.id
var currentId = $(this).attr("id").replace("AddMenuItem", "");
//get itemnumber, itemname, itemdetails from textboxes with same header id
var restaurantId = jQuery.trim($("#RestaurantId").val());
var itemNumber = jQuery.trim($("#ItemNumber" + currentId).val());
var itemName = jQuery.trim($("#ItemName" + currentId).val());
var itemDetails = jQuery.trim($("#ItemDetails" + currentId).val());
var costs = new Object();
//select all textboxes with class "Header" + currentId
$(".Header" + currentId).each(function (i) {
var optionId = $(this).attr("id").replace("Option", "");
costs[optionId] = $(this).val();
});
$.ajax(
{
type: "POST",
url: "/Menu/AddMenuItem",
data: "reastaurantId=" + restaurantId + "&menuHeaderId=" + currentId + "&itemNumber=" + itemNumber + "&itemName=" + itemName + "&itemDetails=" + itemDetails + "&costs=" + costs,
dataType: "html",
success: function (result) {
var domElement = $(result);
$("#MenuContainer").replaceWith(domElement);
var newNum = parseInt(itemNumber) + 1;
$("#ItemNumber" + currentId).val(newNum);
BindAllBehaviours();
}
});
});
}
Quando si passa il dizionario come suggerisco, ottengo un oggetto nullo. Ho aggiornato la mia domanda per mostrare la mia fonte. Grazie – ddd
Controlla la mia modifica. –
Ora ho provato il dizionario come stringa, int e stringa, stringa.Modificato il post su come lo si elenca e non mostra ancora alcun valore. Grazie per l'aiuto finora. Non so davvero in quale altro modo per farlo funzionare. – ddd