Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MVC#填充嵌套对象AJAX JSON JQuery_C#_Jquery_Json_Post_Model View Controller - Fatal编程技术网

MVC#填充嵌套对象AJAX JSON JQuery

MVC#填充嵌套对象AJAX JSON JQuery,c#,jquery,json,post,model-view-controller,C#,Jquery,Json,Post,Model View Controller,使用AJAX JQuery发送Json时,我无法填充嵌套对象 具体来说,我无法填充行项目 LineItems是不同类型对象的列表:可以是网站或活动,因此在我的服务器端,我创建了两个从通用产品类继承的类(网站/活动) json格式是客户端通过post发送给我的,因此我想知道如何将我的c#对象与我收到的json自动绑定(或不绑定) 在控制器中,到目前为止的结果是使用自己的属性填充顺序,但LineItems的分支始终是一个没有值的产品 非常感谢 型号 public class Order {

使用AJAX JQuery发送Json时,我无法填充嵌套对象

具体来说,我无法填充行项目

LineItems是不同类型对象的列表:可以是网站或活动,因此在我的服务器端,我创建了两个从通用产品类继承的类(网站/活动)

json格式是客户端通过post发送给我的,因此我想知道如何将我的c#对象与我收到的json自动绑定(或不绑定)

在控制器中,到目前为止的结果是使用自己的属性填充顺序,但LineItems的分支始终是一个没有值的产品

非常感谢

型号

public class Order
{
    public string Partner { get; set; }
    public string OrderID { get; set; }

    public List<LineItems> LineItems { get; set; }
}

public class LineItems
{
    public Product Product = new Product();
}

public class Product
{
    public string ID { get; set; }
    public string Category { get; set; }
}

public class Website : Product
{
    public WebsiteDetails WebsiteDetails = new WebsiteDetails();
}

public class WebsiteA : Website
{
    public string ContactName { get; set; }
}

public class PaidSearch : Product
{
    public Campaign Campaign = new Campaign();
}

public class Campaign
{
    public string CampaignName { get; set; }
}

public class WebsiteDetails
{
    public string TemplateId { get; set; }
    public string WebsiteBusinessName { get; set; }
}
JQUERY

jQuery.ajax({
    url: "/api/rec-order",
    type: "POST",
    dataType: 'json',
    data: {
        "Partner": "TNT",
        "OrderID": "999888777",
        "LineItems": [
            {
                "ID": 1,
                "Category": "First Category Website",
                "WebsiteDetails": {
                    "TemplateId": "12",
                    "WebsiteBusinessName": "Lorem Ipsum",
                }
            },
            {
                "ID": 1,
                "Category": "First Category Campaign",
                "Campaign": {
                    "CampaignName": "Lorem Ipsum",
                }
            }
        ]
    },
    success: function (data) {
        console.log(data);
    }
});

您的
LineItems
类需要包含
int-ID
字符串类别
。。。属性,而不是对象

您可以尝试使用此选项来代替当前的型号

public class WebsiteDetails
{
    public string TemplateId { get; set; }
    public string WebsiteBusinessName { get; set; }
}

public class Campaign
{
    public string CampaignName { get; set; }
}

public class LineItem
{
    public int ID { get; set; }
    public string Category { get; set; }
    public WebsiteDetails WebsiteDetails { get; set; }
    public Campaign Campaign { get; set; }
}

public class Order
{
    public string Partner { get; set; }
    public string OrderID { get; set; }
    public List<LineItem> LineItems { get; set; }
}
公共类网站详细信息
{
公共字符串TemplateId{get;set;}
公共字符串WebsiteBusinessName{get;set;}
}
公课运动
{
公共字符串名称{get;set;}
}
公共类行项目
{
公共int ID{get;set;}
公共字符串类别{get;set;}
公共网站详细信息网站详细信息{get;set;}
公共活动{get;set;}
}
公共阶级秩序
{
公共字符串伙伴{get;set;}
公共字符串OrderID{get;set;}
公共列表行项目{get;set;}
}

@gmacario很乐意帮忙:)
public class WebsiteDetails
{
    public string TemplateId { get; set; }
    public string WebsiteBusinessName { get; set; }
}

public class Campaign
{
    public string CampaignName { get; set; }
}

public class LineItem
{
    public int ID { get; set; }
    public string Category { get; set; }
    public WebsiteDetails WebsiteDetails { get; set; }
    public Campaign Campaign { get; set; }
}

public class Order
{
    public string Partner { get; set; }
    public string OrderID { get; set; }
    public List<LineItem> LineItems { get; set; }
}