如何将嵌套数据从客户端传递到控制器

时间:2016-12-22 16:00:19

标签: javascript ajax asp.net-mvc-4

我有一个包含两个部分的表单。 3个输入字段和另一个带10个复选框的部分。

        public class Customerproductdto
        {
            public string CustomerNumber { get; set; }
            public string CustomerName { get; set; }
            public string CustomerPhone { get; set; }       
            List<ProductDetails> GetAllChecked {get;set;}
        }

        public class ProductDetails
        {
            public string ProductName{ get; set; }
        }

这是我用来获取复选框的所有值的jquery代码 检查我的表格。他们大约10,用户可以检查一切。

    var yourArray[]

    $("input:checkbox[name=type]:checked").each(function(){
        yourArray.push($(this).val());
    });

这是我用来收集数据并传递给我的控制器的javascript。 我怎样才能一次性传递我的阵列?

    var objdata =
            ({
                CustomerNumber: txtcustnumber,
                CustomerName: txtcustname,
                CustomerPhone: txtphone

                //How do I pass the yourArray here?     

            });

            var url = "@Url.Action("WriteToDb", "Home")";
            var completeData = JSON.stringify({ 'Information': objdata });

            $.get(url, { 'objdata': completeData }, function (data) {
                $('#mainListContent').html(data);
            });

请注意,一旦我到达控制器,我想反序列化。 这是方法。

     public ActionResult WriteToDb(string objdata)
            {
                Customerproductdto getAllTaskSaved = null;

                try
                {
                    var stripOffObjectName = JObject.Parse(objdata)["Information"];
                    var cleanedData = JsonConvert.DeserializeObject<Customerproductdto>(stripOffObjectName.ToString());
                    getAllTaskSaved = _dtcDataService.WriteTaskToDb(cleanedData, "Add");
                }
                catch (Exception ex)
                {
                    logger.Error(ex);

                }

                return PartialView("_Taskdisplay", getAllTaskSaved);

            }

0 个答案:

没有答案