Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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
C# 列表<;模型>;返回为空_C#_Asp.net_Model View Controller - Fatal编程技术网

C# 列表<;模型>;返回为空

C# 列表<;模型>;返回为空,c#,asp.net,model-view-controller,C#,Asp.net,Model View Controller,是ASP.net新手,有一个问题涉及到具有多个相同类型变量的模型 我有一个订单模型,可以有0到n个细节模型附加到它。当我发布http请求时,我得到订单的所有信息,除了细节模型总是返回为null。或者更具体地说,列表上的“.count”方法是0 我怎样才能让它发布我的模型的所有细节 订单型号: public struct shipTo { public string id; public string Line1; public int PostalCode; public string Cit

是ASP.net新手,有一个问题涉及到具有多个相同类型变量的模型

我有一个订单模型,可以有0到n个细节模型附加到它。当我发布http请求时,我得到订单的所有信息,除了细节模型总是返回为null。或者更具体地说,列表上的“.count”方法是0

我怎样才能让它发布我的模型的所有细节

订单型号:

public struct shipTo
{ 
public string id;
public string Line1;
public int PostalCode;
public string City;
public string State;
public string CountryCode;
}

namespace USS_EDIv2.Models
{


public class Order
{
   public Int64 SalesOrderNumber { get; set; }
    public Int64 PurchaseOrderNumber { get; set; }
    public Int64 BranchPlant { get; set; }
    public shipTo ShipTo;
    public Int64 Quantity { get; set; }
    public string UOM { get; set; }
    public List<Detail> Detail = new List<Detail>();
}



}
存储库类:

namespace USS_EDIv2.Services
{

public class SalesRepository
{
    public DateTime currentTime = System.DateTime.Now;
    private const string CacheKey = "4041tmtTEST1337";
    public string xml;
    public int i;
    public Order[] GetAllSales()
    {
        var ctx = HttpContext.Current;

        if (ctx != null)
        {
            return (Order[])ctx.Cache[CacheKey];
        }

        return new Order[]
    {
        new Order
        {

        }
    };

    }

    public SalesRepository()
    {
        var ctx = HttpContext.Current;

        if (ctx != null)
        {
            if (ctx.Cache[CacheKey] == null)
            {
                var sales = new Order[]
                     {

                     };

                {
                };
                ctx.Cache[CacheKey] = sales;
                //ctx.Cache.Remove("4041tmtTEST1337");
            }
        }
    }

    public bool SaveSale(Order sales)
    {
        var ctx = HttpContext.Current;

        if (ctx != null)
        {
            try
            {

                var currentData = ((Order[])ctx.Cache[CacheKey]).ToList();


                currentData.Add(sales);

                ctx.Cache[CacheKey] = currentData.ToArray();

                return true;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return false;
            }
        }

        return false;
    }

}
}
和我的控制器:

namespace USS_EDIv2.Controllers
{
public class NewOrderController : ApiController
{
    public DateTime currentTime = System.DateTime.Now;
    private SalesRepository salesRepository;
    public int i;

    public NewOrderController()
    {
        this.salesRepository = new SalesRepository();
    }

    public Order[] Get()
    {
        return salesRepository.GetAllSales();
    }


    public HttpResponseMessage Post(Order sale)
    {
        var ctx = HttpContext.Current;

        this.salesRepository.SaveSale(sale);

        var response = Request.CreateResponse<Order>  (System.Net.HttpStatusCode.Created, sale);

        return response;
    }



}

}
namespace USS_EDIv2.Controllers
{
公共类NewOrderController:ApicController
{
public DateTime currentTime=System.DateTime.Now;
私有销售存储库销售存储库;
公共国际一级;
public NewOrderController()
{
this.salesRepository=新的salesRepository();
}
公共秩序
{
return salessrepository.GetAllSales();
}
公共httpresponsemessagepost(订单销售)
{
var ctx=HttpContext.Current;
这个.salesRepository.SaveSale(sale);
var response=Request.CreateResponse(System.Net.HttpStatusCode.Created,sale);
返回响应;
}
}
}
这是正在请求的XML数据:

<Order>

<SalesOrderNumber>1294288</SalesOrderNumber>

<PurchaseOrderNumber>81896</PurchaseOrderNumber>

<BranchPlant>9701</BranchPlant>

<ShipTo id="string">

<Line1>RAIL TRACK #769 SPOT 00</Line1>

<PostalCode>79765</PostalCode>

<City>MIDLAND COUNTY</City>

<State>TX</State>

<CountryCode>US</CountryCode>

</ShipTo>

<Quantity>75</Quantity>

<UOM>TN</UOM>



<Detail created="2015-12-14T13:59:57.84" action="Create">

<LineNumber>1.0</LineNumber>

<GradeItem>97010B00000</GradeItem>

<Quantity>25.000</Quantity>

<UOM>TN</UOM>

<RequestDate>2015-07-11</RequestDate>

<Status>Open</Status>

</Detail>


<Detail created="2015-12-14T13:59:57.84" action="Create">

<LineNumber>2.0</LineNumber>

<GradeItem>97010B00000</GradeItem>

<Quantity>25</Quantity>

<UOM>TN</UOM>

<RequestDate>2002-02-07</RequestDate>

<Status>Open</Status>

</Detail>


<Detail created="2015-05-22T02:29:50.78" action="Create">

<LineNumber>3.0</LineNumber>

<GradeItem>97010B00000</GradeItem>

<Quantity>25</Quantity>

<UOM>TN</UOM>

<RequestDate>2015-07-11</RequestDate>

<Status>Open</Status>

</Detail>

</Order>

1294288
81896
9701
轨道#769点00
79765
米德兰县
德克萨斯州
我们
75
总氮
1
97010B00000
25
总氮
2015-07-11
打开
2
97010B00000
25
总氮
2002-02-07
打开
3
97010B00000
25
总氮
2015-07-11
打开
这是我目前的回应:

<ArrayOfOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Order>
<ShipTo>
<Line1>RAIL TRACK #769 SPOT 00</Line1>
<PostalCode>79765</PostalCode>
<City>MIDLAND COUNTY</City>
<State>TX</State>
<CountryCode>US</CountryCode>
</ShipTo>
************HERE LIES THE PROBLEM
<Detail/>
************
<SalesOrderNumber>1294288</SalesOrderNumber>
<PurchaseOrderNumber>81896</PurchaseOrderNumber>
<BranchPlant>9701</BranchPlant>
<Quantity>75</Quantity>
<UOM>TN</UOM>
</Order>
</ArrayOfOrder>

好的

因此,我通过将XML数据复制到剪贴板上,创建一个新类,然后进入编辑->粘贴特殊->将XML粘贴为类来解决这个问题

它得出了这样的结论:

namespace USS_EDIv2.Models
{
public class Orders
{
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class Order
{

    private uint salesOrderNumberField;

    private uint purchaseOrderNumberField;

    private ushort branchPlantField;

    private OrderShipTo shipToField;

    private byte quantityField;

    private string uOMField;

    private OrderDetail[] detailField;

    /// <remarks/>
    public uint SalesOrderNumber
    {
        get
        {
            return this.salesOrderNumberField;
        }
        set
        {
            this.salesOrderNumberField = value;
        }
    }

    /// <remarks/>
    public uint PurchaseOrderNumber
    {
        get
        {
            return this.purchaseOrderNumberField;
        }
        set
        {
            this.purchaseOrderNumberField = value;
        }
    }

    /// <remarks/>
    public ushort BranchPlant
    {
        get
        {
            return this.branchPlantField;
        }
        set
        {
            this.branchPlantField = value;
        }
    }

    /// <remarks/>
    public OrderShipTo ShipTo
    {
        get
        {
            return this.shipToField;
        }
        set
        {
            this.shipToField = value;
        }
    }

    /// <remarks/>
    public byte Quantity
    {
        get
        {
            return this.quantityField;
        }
        set
        {
            this.quantityField = value;
        }
    }

    /// <remarks/>
    public string UOM
    {
        get
        {
            return this.uOMField;
        }
        set
        {
            this.uOMField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("Detail")]
    public OrderDetail[] Detail
    {
        get
        {
            return this.detailField;
        }
        set
        {
            this.detailField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderShipTo
{

    private string line1Field;

    private uint postalCodeField;

    private string cityField;

    private string stateField;

    private string countryCodeField;

    private string idField;

    /// <remarks/>
    public string Line1
    {
        get
        {
            return this.line1Field;
        }
        set
        {
            this.line1Field = value;
        }
    }

    /// <remarks/>
    public uint PostalCode
    {
        get
        {
            return this.postalCodeField;
        }
        set
        {
            this.postalCodeField = value;
        }
    }

    /// <remarks/>
    public string City
    {
        get
        {
            return this.cityField;
        }
        set
        {
            this.cityField = value;
        }
    }

    /// <remarks/>
    public string State
    {
        get
        {
            return this.stateField;
        }
        set
        {
            this.stateField = value;
        }
    }

    /// <remarks/>
    public string CountryCode
    {
        get
        {
            return this.countryCodeField;
        }
        set
        {
            this.countryCodeField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string id
    {
        get
        {
            return this.idField;
        }
        set
        {
            this.idField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderDetail
{

    private decimal lineNumberField;

    private string gradeItemField;

    private decimal quantityField;

    private string uOMField;

    private System.DateTime requestDateField;

    private string statusField;

    private System.DateTime createdField;

    private string actionField;

    /// <remarks/>
    public decimal LineNumber
    {
        get
        {
            return this.lineNumberField;
        }
        set
        {
            this.lineNumberField = value;
        }
    }

    /// <remarks/>
    public string GradeItem
    {
        get
        {
            return this.gradeItemField;
        }
        set
        {
            this.gradeItemField = value;
        }
    }

    /// <remarks/>
    public decimal Quantity
    {
        get
        {
            return this.quantityField;
        }
        set
        {
            this.quantityField = value;
        }
    }

    /// <remarks/>
    public string UOM
    {
        get
        {
            return this.uOMField;
        }
        set
        {
            this.uOMField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(DataType = "date")]
    public System.DateTime RequestDate
    {
        get
        {
            return this.requestDateField;
        }
        set
        {
            this.requestDateField = value;
        }
    }

    /// <remarks/>
    public string Status
    {
        get
        {
            return this.statusField;
        }
        set
        {
            this.statusField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public System.DateTime created
    {
        get
        {
            return this.createdField;
        }
        set
        {
            this.createdField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string action
    {
        get
        {
            return this.actionField;
        }
        set
        {
            this.actionField = value;
        }
    }
}
namespace USS_EDIv2.Models
{
公共阶级秩序
{
}
/// 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace=”“,IsNullable=false)]
公共部分类序
{
私人uint SalesOrderNumber字段;
私人uint PurchaseOrderNumber字段;
私人乌斯波特分公司兰特菲尔德;
私人订单发送至shipToField;
专用字节数量字段;
私有字符串uOMField;
private OrderDetail[]detailField;
/// 
公共uint销售订单号
{
收到
{
返回此.salesOrderNumberField;
}
设置
{
this.salesOrderNumberField=值;
}
}
/// 
公共uint PurchaseOrderNumber
{
收到
{
返回此.purchaseOrderNumber字段;
}
设置
{
this.purchaseOrderNumberField=值;
}
}
/// 
公共港口分厂
{
收到
{
返回this.branchPlantField;
}
设置
{
this.branchPlantField=值;
}
}
/// 
公共秩序
{
收到
{
返回此.shipToField;
}
设置
{
this.shipToField=值;
}
}
/// 
公共字节数量
{
收到
{
返回此.quantityField;
}
设置
{
this.quantityField=值;
}
}
/// 
公共字符串计量单位
{
收到
{
返回此.uOMField;
}
设置
{
this.uOMField=值;
}
}
/// 
[System.Xml.Serialization.XmlElementAttribute(“详细信息”)]
公共订单详细信息[]详细信息
{
收到
{
返回此.detailField;
}
设置
{
this.detailField=值;
}
}
}
/// 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
公共部分类OrderShipTo
{
专用字符串Line1字段;
私人单位,邮政局;
私有字符串cityField;
私有字符串stateField;
私有字符串countryCodeField;
专用字符串字段;
/// 
公共字符串行1
{
收到
{
返回此.line1字段;
}
设置
{
this.line1字段=值;
}
}
/// 
公共单元后代码
{
收到
{
返回此。postalCodeField;
}
设置
{
this.postalCodeField=值;
}
}
/// 
公共字符串城市
{
收到
{
返回此.cityField;
}
设置
{
this.cityField=值;
}
}
/// 
公共字符串状态
{
收到
{
返回此.stateField;
}
设置
{
this.stateField=值;
}
}
/// 
公共字符串国家代码
{
收到
{
返回此.countryCodeField;
}
设置
{
this.countryCodeField=值;
}
}
/// 
[System.Xml.Serialization.XmlAttributeAttribute()]
公共字符串id
{
收到
{
返回此.idField;
}
设置
{
this.idField=值;
}
}
}
/// 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
公共部分类OrderDetail
{
专用十进制行号字段;
私有字符串字段;
私有十进制数量字段;
私有字符串uOMField;
private System.DateTime requestDateField;
私有字符串状态字段;
private System.DateTime createdField;
私有字符串操作字段;
/// 
公共十进制行号
{
收到
{
返回此.lineNumberField;
}
设置
{
this.lineNumberField=值;
}
}
/// 
公共字符串项目
{
收到
{
返回此.gradeItem字段;
}
设置
{
this.gradeItemField=值;
}
}
/// 
公共小数量
{
收到
{
返回此.quantityField;
namespace USS_EDIv2.Models
{
public class Orders
{
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class Order
{

    private uint salesOrderNumberField;

    private uint purchaseOrderNumberField;

    private ushort branchPlantField;

    private OrderShipTo shipToField;

    private byte quantityField;

    private string uOMField;

    private OrderDetail[] detailField;

    /// <remarks/>
    public uint SalesOrderNumber
    {
        get
        {
            return this.salesOrderNumberField;
        }
        set
        {
            this.salesOrderNumberField = value;
        }
    }

    /// <remarks/>
    public uint PurchaseOrderNumber
    {
        get
        {
            return this.purchaseOrderNumberField;
        }
        set
        {
            this.purchaseOrderNumberField = value;
        }
    }

    /// <remarks/>
    public ushort BranchPlant
    {
        get
        {
            return this.branchPlantField;
        }
        set
        {
            this.branchPlantField = value;
        }
    }

    /// <remarks/>
    public OrderShipTo ShipTo
    {
        get
        {
            return this.shipToField;
        }
        set
        {
            this.shipToField = value;
        }
    }

    /// <remarks/>
    public byte Quantity
    {
        get
        {
            return this.quantityField;
        }
        set
        {
            this.quantityField = value;
        }
    }

    /// <remarks/>
    public string UOM
    {
        get
        {
            return this.uOMField;
        }
        set
        {
            this.uOMField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("Detail")]
    public OrderDetail[] Detail
    {
        get
        {
            return this.detailField;
        }
        set
        {
            this.detailField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderShipTo
{

    private string line1Field;

    private uint postalCodeField;

    private string cityField;

    private string stateField;

    private string countryCodeField;

    private string idField;

    /// <remarks/>
    public string Line1
    {
        get
        {
            return this.line1Field;
        }
        set
        {
            this.line1Field = value;
        }
    }

    /// <remarks/>
    public uint PostalCode
    {
        get
        {
            return this.postalCodeField;
        }
        set
        {
            this.postalCodeField = value;
        }
    }

    /// <remarks/>
    public string City
    {
        get
        {
            return this.cityField;
        }
        set
        {
            this.cityField = value;
        }
    }

    /// <remarks/>
    public string State
    {
        get
        {
            return this.stateField;
        }
        set
        {
            this.stateField = value;
        }
    }

    /// <remarks/>
    public string CountryCode
    {
        get
        {
            return this.countryCodeField;
        }
        set
        {
            this.countryCodeField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string id
    {
        get
        {
            return this.idField;
        }
        set
        {
            this.idField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class OrderDetail
{

    private decimal lineNumberField;

    private string gradeItemField;

    private decimal quantityField;

    private string uOMField;

    private System.DateTime requestDateField;

    private string statusField;

    private System.DateTime createdField;

    private string actionField;

    /// <remarks/>
    public decimal LineNumber
    {
        get
        {
            return this.lineNumberField;
        }
        set
        {
            this.lineNumberField = value;
        }
    }

    /// <remarks/>
    public string GradeItem
    {
        get
        {
            return this.gradeItemField;
        }
        set
        {
            this.gradeItemField = value;
        }
    }

    /// <remarks/>
    public decimal Quantity
    {
        get
        {
            return this.quantityField;
        }
        set
        {
            this.quantityField = value;
        }
    }

    /// <remarks/>
    public string UOM
    {
        get
        {
            return this.uOMField;
        }
        set
        {
            this.uOMField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(DataType = "date")]
    public System.DateTime RequestDate
    {
        get
        {
            return this.requestDateField;
        }
        set
        {
            this.requestDateField = value;
        }
    }

    /// <remarks/>
    public string Status
    {
        get
        {
            return this.statusField;
        }
        set
        {
            this.statusField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public System.DateTime created
    {
        get
        {
            return this.createdField;
        }
        set
        {
            this.createdField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string action
    {
        get
        {
            return this.actionField;
        }
        set
        {
            this.actionField = value;
        }
    }
}