Je souhaite passer un dictionnaire de type <int,int>
à mon contrôleur via un poste Ajax. La raison principale ici est le poste peut avoir entre 1-3 paires de valeurs clés ici (aucune de ces valeurs sont connues à la compilation) et dans le futur, il peut aller jusqu'à 5.dictionnaire de passe au contrôleur asp.net mvc
Aussi dans le poste que j'ai transmettre d'autres données, telles que Id et name, qui fonctionnent normalement.
Comment est-ce que je construirais ce dictionay dans le javascript puis l'enverrais par l'intermédiaire du message de JQuery et le recevrais finalement sur le contrôleur pour traiter?
Éditer 2: J'ai décidé de résoudre cela avec un message pour chaque valeur au lieu d'essayer de passer un dictionnaire.
EDIT: Voici ma source pour la fonction afin que vous puissiez voir ce que je suis en train:
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();
}
});
});
}
Lorsque vous passez le dictionnaire comme vous le suggérez, j'obtiens un objet nul. J'ai mis à jour ma question pour montrer ma source. Merci – ddd
Vérifiez ma modification. –
J'ai maintenant essayé le dictionnaire en tant que chaîne, int et chaîne, chaîne.Modification de la publication sur la façon dont vous l'affichez et elle n'affiche aucune valeur. Merci du coup de main jusqu'à présent. Je ne sais pas vraiment comment faire fonctionner ceci – ddd