我想通过Ajax post将一个类型为
此外,在post中,我还需要传入一些其他数据,例如Id和name,所有这些都像平常一样工作。
那么我该如何在javascript中构造这个字典,然后通过JQuery post发送它,并最终在控制器上接收它以进行处理?
编辑2: 我已经决定只通过每个值进行post来解决这个问题,而不是尝试传递一个字典。
编辑: 这是我函数的源代码,以便您可以看到我正在尝试什么:
<int,int>
的字典传递给我的控制器。
主要原因是该post可能包含1-3个键值对(这些值在编译时都不知道),未来可能会增加到5个。此外,在post中,我还需要传入一些其他数据,例如Id和name,所有这些都像平常一样工作。
那么我该如何在javascript中构造这个字典,然后通过JQuery post发送它,并最终在控制器上接收它以进行处理?
编辑2: 我已经决定只通过每个值进行post来解决这个问题,而不是尝试传递一个字典。
编辑: 这是我函数的源代码,以便您可以看到我正在尝试什么:
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();
}
});
});
}
'
把字典项包围起来了? - Jan Jongboom