1

SOに関する多くの投稿を検索しましたが、ここで何が間違っていたのかまだわかりません。「OrderItem」をmodel含む「Order」用があります<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ます。モデルの残りの部分は問題ないように見えますが、orderitems のリストから値を取得できません。

私が間違っていること、または私が見逃していることを誰かが知っていますか?

4

2 に答える 2

0

OrderItemsはフィールドであり、プロパティではありません。getterとsetterを使用してプロパティにする必要があります。次に、コンストラクターで空のリストを作成し、それをプロパティに割り当てます。

于 2013-02-26T21:31:45.037 に答える
0

モデル クラスに子リストのプロパティがないと思います。OrderItems リストのプロパティを追加してみてください。

于 2013-02-26T21:20:38.417 に答える