简体   繁体   English

如何使用Ajax和jQuery将复杂类型传递给ASP.NET MVC控制器

[英]How to Pass Complex Type to ASP.NET MVC Controller using Ajax and jQuery

I am getting null values for the complex variable( RamarksList ) properties with in another Complex type( Model ). 我在另一个复杂类型( 模型 )中获得了复杂变量( RamarksList )属性的空值。

See the values coming properly for the Name and Type but I see null values for the properties(Parameter and Comments) for the Complex Type RemarksList . 看到正确的名称类型值,但是我看到复杂类型RemarksList的属性(参数和注释)为空值。

Here is my code. 这是我的代码。 Please take a look and advise. 请看看并提出建议。

jQuery: jQuery的:

 var data = {               
            'Name': 'Apple',
            'Type': 'Fruit',
            'RemarksList': [
              {
                  'Parameter': 'test 1',
                  'Comments': 'test 123'
              },
              {
                  'Parameter': 'test 2',
                  'Comments': 'abc 3455'
              }
            ]
        };



var url = "/Controller/Action";

            $.ajax({
                url: url,
                type: 'POST',
                dataType: 'application/json',
                data: data,
                success: function (data) {

                }
            });

Controller: 控制器:

[HttpPost]
        public ActionResult Save(Model model)
        {
            return View();
        }

Model classes: 模型类别:

public class Model
    {
        public int Id { get; set; }      
        public string Name { get; set; }
        public string Type{ get; set; }
        public List<Remarks> RemarksList { get; set; }
    }

public class Remarks
{
    public int Id { get; set; }
    public string Parameter { get; set; } 
    public string Comments { get; set; } 
}

i put your code in my test project, and i get correct data. 我将您的代码放入测试项目中,并获得正确的数据。 actually RemarksList is not null and works fine!! 实际上RemarksList不为null,可以正常工作!

Result. 结果。

first convert data in string using JSON.stringify 首先使用JSON.stringify以字符串形式转换数据

$.ajax({
                url: url,
                type: 'POST',
                dataType: 'application/json',
                data: JSON.stringify(data),
                success: function (data) {

                }
            });

then change controller code from following 然后从以下更改控制器代码

        [HttpPost]
        public ActionResult Save(string model)
        {
           JavaScriptSerializer json_serializer = new JavaScriptSerializer();
           Model routes_list =(Model)json_serializer.DeserializeObject(model);
           return View();
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何将具有 ajax 的复杂数据类型发送到 ASP.NET MVC 中 controller 中的操作 - How send complex data type with ajax to the action in controller in ASP.NET MVC 如何通过Jquery.ajax()将字符串值从视图传递到ASP.NET MVC控制器 - How to pass string value from a view via Jquery.ajax() to ASP.NET MVC controller 如何使用AJAX JQuery ASP .NET MVC 4将FormCollection和文件传递给控制器 - How to pass a FormCollection and file to controller with AJAX JQuery ASP .NET MVC 4 ASP.Net Mvc 如何使用 Ajax 使用按钮将数据从视图传递到 Controller - ASP.Net Mvc How to pass data from View into Controller with a Button using Ajax 如何在ASP.NET MVC中使用jQuery将html选择标记(下拉)值传递给控制器​​? - How can i pass a html select tag (dropdown) value to the controller using jquery in asp.net mvc? 如何在Asp.net MVC中使用DatePicker将日期传递给控制器 - How to Pass Date to Controller using DatePicker in Asp.net MVC 如何在 Asp.net MVC 中使用 Ajax 命中控制器动作? - How To Hit Controller Action Using Ajax In Asp.net MVC? 如何使用AJAX将数据发布到ASP.NET MVC控制器? - How to post data to ASP.NET MVC controller using AJAX? 如何在ASP.NET MVC中使用JQuery.Ajax传递多个参数 - How to pass multiple arguments using JQuery.Ajax in ASP.NET MVC 将复杂的 model 传递给 controller 使用 Z9E0DA8438E1E38A1C30F4B76CE3 Core M34A6659BCEAE779F28185E757ABFCA5Z - Passing a complex model to controller using AJAX in ASP.NET Core MVC
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM