1

我已经搜索了很多关于 SO 的帖子,但仍然不确定我在这里做错了什么。我有一个model“订单”,其中包括一个“订单项目<list>

public class Order
{
    public int OrderId { get; set; }
    public int CustId { get; set; }
    public DateTime OrderDate { get; set; }
    public int OrderType { get; set; }
    ...
    ...
    public List<OrderItem> OrderItems = new List<OrderItem>();
}
public class OrderItem
{
    public string ProductCode { get; set; }
    public decimal RetailPrice { get; set; }
    public string ProductQuantity { get; set; }
}

在我看来,这是对订单模型的强类型,我正在使用编辑器模板来显示订单项目

@model FTG.Models.Order
@Html.EditorFor(x => x.OrderItems)

并且编辑器模板似乎为模型绑定分配了一个正确的名称:

input  type="number" id="OrderItems_0__ProductQuantity" name="OrderItems[0].ProductQuantity"...
input  type="number" id="OrderItems_1__ProductQuantity" name="OrderItems[1].ProductQuantity"...

但是我的模型返回到控制器count=0列表中。模型的其余部分看起来不错,我只是无法从订单项列表中获取值。

有谁知道我做错了什么,或者我错过了什么?

4

2 回答 2

0

我认为您的模型类缺少子列表的属性。尝试为 OrderItems 列表添加一个属性。

于 2013-02-26T21:20:38.417 回答
0

OrderItems 是一个字段,而不是一个属性。您需要使用 getter 和 setter 使其成为属性,然后在构造函数中创建空列表并将其分配给属性。

于 2013-02-26T21:31:45.037 回答