将Javascript类数组传递给MVC控制器

Passing an array of Javascript classes to a MVC controller?

本文关键字:MVC 控制器 Javascript 数组      更新时间:2023-09-26

我试图将服务数组传递给我的控制器。我已经尝试了一堆不同的方法来让它工作,序列化数据之前去控制器,序列化每个服务,似乎唯一的工作是改变控制器参数字符串和序列化数组,然后使用JsonConvert,但我宁愿不这样做。

使用指定的代码,我在列表中得到正确的项目数量,但它们都包含一个空公会的服务id,服务提供商id为null。

任何想法?

Javascript

<>之前函数ServiceItem() {这一点。ServiceProviderID = 'all';这一点。ServiceID = ";}Var selecteditems= (function () {var services = new Array();返回{All: function() {返回服务;},新增:function(service) {services.push(服务);}};}) ();Var reserved = [];$.each(selecteitems .all(), function(index, item){保留。push({ServiceID: item)ServiceProviderID: item.ServiceProviderID});});getData('Controller/GetMethod', {items: reserved}, function(result) {});var getData = function (actionurl, da, done) {. ajax({美元类型:"获得",url: actionurl,数据:哒。数据类型:"json",异步:没错,成功:函数(d) {If (typeof (done) == 'function') {var str = JSON.stringify(d);(JSON.parse (str));}}});};之前控制器

<>之前public JsonResult GetMethod(List项目){}之前

自定义对象<>之前公共类CustomObject{public Guid ServiceID {get;set;}公众的Guid呢?ServiceProviderID{获取;设置;}}

设置内容类型并使用POST而不是GET(因为它是一个复杂类型对象列表)。也用HttpPost属性标记你的动作

查看是否有效:-

 $.ajax({
           type: "POST",
           url: actionurl,
           data: JSON.stringify(da),
           dataType: "json",
           contentType: 'application/json',
           async: true,
           success: function (d) {
               if (typeof (done) == 'function') {
                   var str = JSON.stringify(d);
                   done(JSON.parse(str));
               }
           }
       });