c# – 将字典传给控制器asp.net mvc

c# – 将字典传给控制器asp.net mvc,第1张

概述我想传递类型为< int,int>的字典通过Ajax发布到我的控制器. 这里的主要原因是这里的帖子可能有1-3个关键值对(在编译时没有这些值被知道),以后它可能会达到5. 同样在帖子中,我必须传递一些其他数据,如Id和name,它们都正常工作. 我将如何在javascript中构建这个字典,然后通过JQuery发送它,最后在控制器上接收它来处理? 编辑2: 我决定用每个值的一个帖子来解决这个问题, 我想传递类型为< int,int>的字典通过@R_419_6815@发布到我的控制器.
这里的主要原因是这里的帖子可能有1-3个关键值对(在编译时没有这些值被知道),以后它可能会达到5.

同样在帖子中,我必须传递一些其他数据,如ID和name,它们都正常工作.

我将如何在javascript中构建这个字典,然后通过JQuery发送它,最后在控制器上接收它来处理?

编辑2:
我决定用每个值的一个帖子来解决这个问题,而不是试图传递一个字典.

编辑:
这是我的功能来源,所以你可以看到我在做什么:

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();            });            $.@R_419_6815@(            {                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();                }            });        });    }
解决方法 像(JavaScript)
dict = new Object();dict['12'] = 5;dict['13'] = 6;dict['1000'] = 21;dict['9'] = 13;dict['13'] = 48;$.post('/clIEnt.mvc/mypostaction/',{ myDictionary: dict });

然后,您可以使用Dictionary< int,int>将dict对象发布到控制器.作为属性类型.

ActionResult MyPostAction(Dictionary<string,int> myDictionary)

第二次编辑作者的代码:

以下内容适用于我,当有一个Dictionary< string,int> kvPairs. < int,int>毕竟不会上班.

让你的帖子像:

var dict = new Object();dict['13'] = 9;dict['14'] = 10;dict['2'] = 5;$.post('controller.mvc/Test',{ 'kvPairs': dict },function(obj) { $('#output').HTML(obj.Count); });
总结

以上是内存溢出为你收集整理的c# – 将字典传给控制器asp.net mvc全部内容,希望文章能够帮你解决c# – 将字典传给控制器asp.net mvc所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1238893.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存