Я хочу передать словарь типа <int,int>
моему контроллеру через пост Ajax. Основная причина здесь в том, что сообщение может иметь между 1-3 ключевыми парами значений здесь (ни одно из этих значений не известно во время компиляции), и в будущем он может подняться до 5.pass dictionary to controller asp.net mvc
Также в сообщении у меня есть передать некоторые другие данные, такие как Id и имя, которые работают нормально.
Как я могу построить этот dictionay в javascript, затем отправить его через сообщение JQuery и, наконец, получить его на контроллере для обработки?
Редактировать 2: Я решил просто решить это с помощью сообщения для каждого значения вместо того, чтобы пытаться передать словарь.
EDIT: Вот мой источник для функции, так что вы можете увидеть, что я пытаюсь:
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();
}
});
});
}
При прохождении словаря, как вы предлагаете, я получаю нулевой объект. Я обновил свой вопрос, чтобы показать свой источник. Спасибо – ddd
Проверьте мои изменения. –
Теперь я попробовал словарь как строку, int и string, string.Изменено сообщение о том, как вы его перечислите, и оно по-прежнему не показывает никаких значений. Спасибо за помощь до сих пор. Я действительно не знаю, как еще получить эту работу. – ddd